I want to speed up a data loading.
I use MySQL 5.5, InnoDB and have 1M rows of data (65Mb file). It takes 5 minutes.
What mysql settings and commands affect
This might not be exactly what you're looking for but is a trick I've used in the past
ALTER TABLE TABLE_NAME DISABLE KEYS;
LOAD DATA INFILE ... ;
ALTER TABLE TABLE_NAME ENABLE KEYS;
Hope it helps.
I can recommend these settings to improve load time:
Other than settings, there are some things you can do yourself:
If you are in a hurry because you are replacing the contents of a live table, then do it this way instead:
CREATE TABLE new LIKE live;
LOAD DATA ... INTO new;
RENAME TABLE live TO old, new TO live;
DROP TABLE old;
The RENAME
is 'instantaneous' and atomic, so you are 'never' down, regardless of table size.
(Hence you don't need to worry so much about speeding up the LOAD
.)
Also make sure that binary logging disabled if possible.
Try removing indexes and triggers. You can re-create them after the load. Also look into using some of the high-load settings in my-huge.cnf instead of the defaults.
Some more innodb performance settings:
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/