Я хочу ускорить загрузку данных.
Я использую MySQL 5.5, InnoDB и имею 1M строк данных (файл 65Mb). Это занимает 5 минут.
Какие настройки и команды mysql влияют на скорость LOAD DATA INFILE для InnoDB?
Спасибо.
Я хочу ускорить загрузку данных.
Я использую MySQL 5.5, InnoDB и имею 1M строк данных (файл 65Mb). Это занимает 5 минут.
Какие настройки и команды mysql влияют на скорость LOAD DATA INFILE для InnoDB?
Спасибо.
Я могу порекомендовать эти настройки для улучшения времени загрузки:
Помимо настроек, есть некоторые вещи, которые вы можете сделать самостоятельно:
Попробуйте удалить индексы и триггеры. Вы можете воссоздать их после загрузки. Также рассмотрите возможность использования некоторых параметров высокой нагрузки в my-huge.cnf вместо значений по умолчанию.
Еще несколько настроек производительности innodb:
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
Это может быть не совсем то, что вы ищете, но это трюк, который я использовал в прошлом
ALTER TABLE TABLE_NAME DISABLE KEYS;
LOAD DATA INFILE ... ;
ALTER TABLE TABLE_NAME ENABLE KEYS;
Надеюсь, поможет.
Также убедитесь, что ведение двоичного журнала отключено, если это возможно.
Если вы спешите, потому что заменяете содержимое живой таблицы, сделайте это вместо этого:
CREATE TABLE new LIKE live;
LOAD DATA ... INTO new;
RENAME TABLE live TO old, new TO live;
DROP TABLE old;
RENAME
является «мгновенным» и атомарным, поэтому вы «никогда» не проигрываете, независимо от размера стола.
(Следовательно, вам не нужно так сильно беспокоиться об ускорении LOAD
.)