it-swarm-ru.tech

Ускорение выгрузки и импорта MySQL

Существуют ли документированные методы для ускорения дампов и импорта mySQL?

Это будет включать настройки my.cnf, использование ram-дисков и т.д.

Нужны только документированные методы, желательно с ориентирами, показывающими потенциальное ускорение.

51
deadprogrammer

http://www.maatkit.org/ имеет MK-параллельный-дамп и MK-параллельный-восстановление

Если вы мечтали о многопоточном mysqldump, не желайте больше. Этот инструмент сбрасывает таблицы MySQL параллельно. Это намного умнее mysqldump, который может действовать как оболочка для mysqldump (с разумным поведением по умолчанию) или как оболочка для SELECT INTO OUTFILE. Он предназначен для высокопроизводительных приложений с очень большими размерами данных, где скорость имеет большое значение. Он использует преимущества нескольких процессоров и дисков, чтобы вывести ваши данные намного быстрее.

В mysqldump также есть различные возможные варианты, например, не создавать индексы во время импорта дампа, а вместо этого делать их массовыми по завершении.

15
Alister Bulman
  1. Получить копию High Performance MySQL. Отличная книга.
  2. Расширенные вставки в отвалы
  3. Создайте дамп в формате --tab, чтобы вы могли использовать mysqlimport, который работает быстрее, чем mysql <dumpfile
  4. Импорт с несколькими потоками, по одному для каждой таблицы.
  5. Если возможно, используйте другой движок базы данных. импорт в сильно транзакционный движок, такой как innodb, очень медленный. Вставка в нетранзакционный движок, такой как MyISAM, намного быстрее.
  6. Посмотрите на скрипт сравнения таблиц в инструментарии Maakit и посмотрите, можете ли вы обновить свои таблицы, вместо того, чтобы создавать их дамп и импортировать. Но вы, вероятно, говорите о резервном копировании/восстановлении.
24
JBB

Если вы импортируете в InnoDB, единственное, что вы можете сделать, это поместить

innodb_flush_log_at_trx_commit = 2

в вашем my.cnf, временно, пока выполняется импорт. Вы можете вернуть его в 1, если вам нужен ACID.

13
Aleksandar Ivanisevic

Я думаю, ваш вопрос также зависит от того, где находится узкое место:

  • Если ваша сеть является узким местом, вы также можете посмотреть флаг -C/--compress на mysqldump.
  • Если на вашем компьютере не хватает памяти (т. Е. Начинается подкачка), вы должны купить больше памяти.

Также обратите внимание на флаг --quick для mysqldump--disable-keys, если вы используете MyIsam).

5
Ztyx

Использование расширенных вставок в дампах должно ускорить импорт.

4
che

отключите проверку внешних ключей и включите авто-фиксацию.

4
longneck

mysqlhotcopy может быть альтернативой для вас, если у вас есть только таблицы MyIsam.

1
Ztyx