Назад | Перейти на главную страницу

Медленный импорт Mysql

Я импортирую базу данных, и когда я запускаю mytop, я вижу только один поток, выполняющий вставку. В большой базе данных 80G, которая займет действительно много времени, есть ли какие-либо инструменты или может быть вариант увеличения количества потоков?

Оптимальный вариант для параллельного дампа / загрузки - mydumper. который написан людьми знающими свое дело.

Это не по теме, но, кстати, innotop - более мощный инструмент, чем mytop.

Вы можете попробовать параллель Мааткит свалка и восстановить инструменты.

Инструменты Maatkit были добавлены в Набор инструментов Percona однако я не могу найти эти два инструмента в документах.

Вы можете не увидеть улучшения скорости в зависимости от того, как настроены ваши диски. Некоторые люди видели некоторые значительные улучшения.

Вы можете попытаться увеличить значение переменной key_buffer_size в my.cnf до 20-25% доступной оперативной памяти. Обычно его значение довольно низкое, и его увеличение позволит значительно ускорить импорт / сброс. Больше информации: http://www.notesbit.com/index.php/web-mysql/mysql/mysql-tuning-optimizing-my-cnf-file/

Мои ограниченные знания не касаются многопоточности, поэтому я не могу вам здесь помочь.

Из других баз данных, особенно MySql, я знаю, что это может улучшить вашу скорость, если вы удалите индексы перед импортом и воссоздаете их впоследствии.

Конечно, это зависит в основном от двух вопросов: можете ли вы отключить базу данных во время импорта, и доказано, что данные, которые вы пытаетесь импортировать, не нарушают ограничений, которые гарантируются индексами.

Триггеры вставки и обновления и хранимые процедуры могут играть аналогичную роль.

Вы также можете просто синхронизировать вашу папку / var / lib / mysql с любым другим компьютером. Наилучший сценарий для этого был бы, если бы у вас был запущен раб. Вы можете просто остановить и выключить службу mysql. Таким образом файлы в / var / lib / mysql не будут изменены.

rsync -avhzr ssh user@yourmachine:/var/lib/mysql .

Таким образом, я мог импортировать свою базу данных 40G в течение 20 минут, в зависимости от пропускной способности вашего Интернета.