"Vinay" <[EMAIL PROTECTED]> wrote on 01/31/2006 11:42:51 AM:

> I am using mysql5.0 on Hp-UX. IT took about 14 hours to insert 1.7 
> millin records. How do I make my insert run faster.The table has 
> three foreign key references and the referencing columns are indexed
> . Is that impacting the insert statement performance.
> 
> 
> Thanks for the help
> Vinay

Without a doubt, you indexes are slowing you down. MySQL offers the 
ability to disable both real-time indexing and real-time foreign key 
checking.  If this is the parent table of several child tables, you should 
be able to safely disable both during your import.

Also, you should try to use the largest extended insert command possible. 
Trying to parse and execute 1.7 million individual INSERT statements is a 
real pain and you are just flailing your transaction coordinator (open a 
tx, do a single insert, commit the tx). With the extended insert format 
you get batches of rows per transaction (open a tx, insert several 
thousand rows, commit the tx).

Check out:

extended INSERT syntax:
        http://dev.mysql.com/doc/refman/5.0/en/insert.html

ALTER TABLE ... ENABLE KEYS/DISABLE KEYS : 
        http://dev.mysql.com/doc/refman/5.0/en/alter-table.html


SET FOREIGN_KEY_CHECKS=... : 
        http://dev.mysql.com/doc/refman/5.0/en/innodb-tuning.html
        http://dev.mysql.com/doc/refman/5.0/en/set-option.html


Speed of INSERTs:
        http://dev.mysql.com/doc/refman/5.0/en/insert-speed.html

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine


Reply via email to