Добавить в начало sql файла:
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, AUTOCOMMIT = 0;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS = 0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS = 0;
И в конец файла:
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET AUTOCOMMIT = @OLD_AUTOCOMMIT;
COMMIT;
Увеличить в конфиге key_buffer_size
до 30% доступной памяти
Выставить в конфиге innodb_flush_log_at_trx_commit = 2
Возможные значения:
- 1 - фиксировать лог при каждой транзакции на диск - значение по умолчанию
- 2 - при каждой транзакции записывать лог в кеш операционной системы и через секунду сбрасывать на диск - подойдёт в большинстве случаев
- 0 - отправлять лог на диск раз в секунду не зависимо от транзакций - самый быстрый вариант, но есть риск потерять данные