Как быстро импортировать десятки гигабайт дампа MySQL

Данный способ даст заметный прирост импортирования больших дампов базы данных типа InnoDB.

Откроем конфигурацию MySQL в /etc/mysql/my.cnf:

mcedit /etc/mysql/my.cnf

В секции [mysqld] пропишем:

innodb_flush_log_at_trx_commit = 2

Что это даст? А то, что запись данных будет осуществляться не чаще раза в секунду! Что существенно разгрузит файловую подсистему и, следовательно, повысит скорость импортирования дампа.

Перезапускаем сервер БД:

service mysql restart

Кроме того, если дамп сжат в GZip, то распакуйте заранее его и импортируйте чистый дамп. Распаковка «на лету» с последующим перенаправлением вывода в MySQL  вносит охрененную задержку.

Импортируем:

mysql -u username -p db_name < dump.sql

После импортирования не забываем удалить или вернуть опцию innodb_flush_log_at_trx_commit в прежнее состояние!

Открываем конфигурацию:

mcedit /etc/mysql/my.cnf

В секции [mysqld] убираем innodb_flush_log_at_trx_commit = 2.

Перезапускаем MySQL:

service mysql restart

Источник: https://ruhighload.com/post/%D0%9A%D0%B0%D0%BA+%D1%83%D1%81%D0%BA%D0%BE%D1%80%D0%B8%D1%82%D1%8C+Mysqldump+%D0%BD%D0%B0+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D1%85+%D0%B1%D0%B0%D0%B7%D0%B0%D1%85+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
Пруф: https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *