У меня есть огромный дамп памяти объемом 32 ГБ, который мне нужно импортировать в MySQL. Раньше мне не приходилось импортировать такой огромный дамп SQL. Я сделал обычное:
mysql -uroot dbname < dbname.sql
Это занимает слишком много времени. Есть таблица с примерно 300 миллионами строк, которая за 3 часа достигла 1,5 миллиона. Таким образом, кажется, что все это займет 600 часов (это 24 дня) и нецелесообразно. Итак, мой вопрос, есть ли более быстрый способ сделать это?
Дополнительная информация / выводы
- Все таблицы InnoDB, и внешние ключи не определены. Есть, однако, много индексов.
- У меня нет доступа к исходному серверу и БД, поэтому я не могу создать новую резервную копию или сделать «горячую» копию и т. Д.
- Настройка,
innodb_flush_log_at_trx_commit = 2
предложенная здесь, кажется, не дает (явно видимого / экспоненциального) улучшения. - Статистика сервера во время импорта (из MySQL Workbench): https://imgflip.com/gif/ed0c8 .
- MySQL версия 5.6.20 сообщества.
- innodb_buffer_pool_size = 16M и innodb_log_buffer_size = 8M. Нужно ли увеличить это?