2014-11-25 2 views
0

вызов mysqldump для базы данных, содержащей innodb & таблицы myisam. Дамп все еще работает очень быстро, когда дело доходит до толстой таблицы MyISAM с размером 11 ГБ. Быстрые средства iotop показывает мне производительность записи более 70 МБ/с. Я рассматриваю процесс в мифопе, поэтому знаю, что это происходит на большом столе. Файлы дампов растут до 8 ГБ, а затем внезапно ввод-вывод составляет всего около 1 МБ/с.mysqldump big MyISAM таблица начинается быстро и внезапно замедляется

Загрузка сервера в порядке, никаких других процессов не выполняется. Пытался изменить настройки my.cnf, но ничего не получилось.

ответ

0

Производительность зависит от нескольких факторов.

мне пришлось создать an alternative solution to Mysqldump для клиента, чтобы сделать их загрузить 42GB файл дампа (с более чем 1 млрд строк)

Для справки: первоначально, MySQLDump взял 3,9 дней на 16 основной сервер с 64GB оперативной памяти и 10-дисковый SSD-массив.

Использование uniVocity Мы загрузили одни и те же данные за 90 минут, используя 3-летний ноутбук. Вы можете использовать его с 30-дневной оценочной лицензией для загрузки.

Кроме этого, здесь есть несколько вещей, которые могут повлиять на производительность:

Проверьте, если у вас есть это на файл дампа отключить ограничения:

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 
SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' 

Если это не добавляет их или изменить сценарий создания таблицы, чтобы удалить все ограничения. Если у вас есть ограничения (первичные ключи, внешние ключи и т. Д.) Во время работы с дамп-загрузкой, процесс будет медленнее с течением времени, поскольку база данных будет проверять эти ограничения на каждую вставку против растущего числа возможностей (больше PK и FK) ,

Если вы используете InnoDB (точно не ваш случай, но это может помочь кому-то еще), добавьте в ваш my.cfg файл:

innodb_doublewrite = 0 
innodb_buffer_pool_size = 8000M 
# innodb_log_file_size = 512M - If I enable this one the server won't start. Couldn't identify why. 
log-bin = 0 
innodb_support_xa = 0 
innodb_flush_log_at_trx_commit = 0 
Смежные вопросы