http://www.perlmonks.org?node_id=923859


in reply to Bulk data insertion into MySql

When the use of a command-line or other tool is (for whatever reason) infeasible, bulk-insertion operations are categorically improved through the judicious use of three techniques:

  1. Table locking, or the use of transactions with a very strict “isolation level,” to preclude any conflicting operations by other users... or even access by other users.
  2. Transactions, in general, to permit the database system to do “lazy writes” while carrying out the operation.   The transaction is periodically committed and reopened so that the rollback-file does not become huge.
  3. Disabling index updates and referential integrity checks until the entire operation is finished.

There is a very-considerable amount of material on this subject on the Internet, and you need not be concerned if the article you read is not specifically talking about Perl.   The core concepts are universal.

Replies are listed 'Best First'.
Re^2: Bulk data insertion into MySql
by JavaFan (Canon) on Sep 03, 2011 at 22:18 UTC
    Transactions make insert operations in most database, including MySQL slower. There's no such thing as a "lazy write" - in order to remain consistent, data needs to be written to disk as soon as possible.

    Now, I'd still recommend putting everything in a transaction, but not for performance reasons.