Импорт 8-гигабайтного дампа mysql занимает много времени

У меня есть дамп базы данных MYSQL объемом 8 ГБ в таблицах InnoDB, созданных с помощью mysqldump. Я импортирую данные с помощью:

mysql -uroot -p my_db < dump.sql

Сброс базы данных объемом 5 ГБ был импортирован в течение часа. Сброс 8 ГБ занимает 50 часов и подсчет. Когда я осмотрел список процессов с помощью

ПРОСМОТР ПРОГРАММЫ

В большинстве случаев был один запрос INSERT, видимый с "освобождением элементов состояния"

Есть ли способ, помимо копирования необработанных файлов, ускорить процесс импорта?

Ответ 1

Трюк действительно состоит в том, чтобы обеспечить максимальную одиночную таблицу в пуле буферов innodb. Если это не так, то вставки (и импорт, конечно) будут очень медленными.

Не имеет значения размер всей базы данных, но самая большая отдельная таблица.

Для значительно больших баз данных вы можете рассмотреть альтернативные методы передачи базы данных, такие как моментальные снимки файловой системы. Это, конечно, лучше всего работает, если ваши компьютеры работают с той же версией базы данных, ОС и архитектуры.

Ответ 2

Сколько памяти у машины? Мое первое предположение заключалось в том, что у машины 6 ГБ или 8 ГБ памяти, и mysql смог полностью сохранить первый дамп в памяти, но каким-то образом переключил жесткий ядро ​​на второй импорт. Можете ли вы запустить vmstat 5 для нескольких итераций при выполнении импорта и посмотреть, насколько сильно система меняет местами?