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

Замедление импорта MySQL, высокий дисковый ввод-вывод jbd2

Я импортирую большой файл .sql в свою базу данных MySQL сервера,

Однако импорт пока импортировал только несколько таблиц и в настоящее время записывается ~ 17 миллионов одной таблицы. Однако импорт приостанавливается после каждой пары тысяч записей, и эти паузы становятся тем длиннее, чем больше записей импортируется в таблицу. По сути, он скоро остановится.

Я думаю, это может быть связано с некоторыми ограничениями памяти?

однако запуск iotop показывает, что процесс jbd2 в любое время использует огромное количество дискового ввода-вывода.

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

Он не просто копирует данные - СУБД должна записывать данные в таблицу и поддерживать индексы. Чтобы избежать фрагментации индексов и увеличить общую пропускную способность, он будет добавлять целую загрузку записей за раз и изменять индексы по частям - это означает, что будут периоды, когда он будет выполнять большие объемы записи файла (ов) базы данных и низкие объемы чтения из файла импорта. По мере увеличения индексов для добавления записей требуется больше работы.

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