sometimes, I have to re-import data for a project, thus reading about 3.6 million rows into a MySQL table (currently InnoDB, but I am actually not really limited to this engine). "Load data infile…" has proved to be the fastest solution, however it has a tradeoff:
– when importing without keys, the import itself takes about 45 seconds, but the key creation takes ages (already running for 20 minutes…).
– doing import with keys on the table makes the import much slower
There are keys over 3 fields of the table, referencing numeric fields.
Is there any way to accelerate this?
Another issue is: when I terminate the process which has started a slow query, it continues running on the database. Is there any way to terminate the query without restarting mysqld?
Thanks a lot
DBa
Best Answer
if you're using innodb and bulk loading here are a few tips:
sort your csv file into the primary key order of the target table : remember innodb uses clustered primary keys so it will load faster if it's sorted !
typical load data infile i use:
other optimisations you can use to boost load times:
split the csv file into smaller chunks
typical import stats i have observed during bulk loads: