Как ускорить разворачивание дампа

Добавить в начало 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 - отправлять лог на диск раз в секунду не зависимо от транзакций - самый быстрый вариант, но есть риск потерять данные