Ускорение дампов и импорта mysql

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

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

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

Ответ 1

http://www.maatkit.org/ имеет mk-parallel-dump и mk-parallel-restore

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

В mysqldump также существуют различные потенциальные опции, такие как отсутствие индексов при импорте дампа, но вместо этого они выполняются по мере добавления.

Ответ 2

  • Получите копию высокопроизводительной MySQL. Отличная книга.
  • Расширенные вставки в дампах
  • Дамп с форматом --tab, поэтому вы можете использовать mysqlimport, который быстрее, чем mysql < DumpFile
  • Импорт с несколькими потоками, по одному для каждой таблицы.
  • Если возможно, используйте другой движок базы данных. импорт в сильно транзакционный движок, как innodb, ужасно медленный. Вставка в не транзакционный движок вроде MyISAM намного быстрее.
  • Посмотрите на таблицу сравнения script в наборе инструментов Maakit и посмотрите, можете ли вы обновите свои таблицы, а не сбросите их и импортируйте. Но вы, вероятно, говорите о резервном копировании/восстановлении.

Ответ 3

Если вы импортируете в InnoDB, самая эффективная вещь, которую вы можете сделать, это поставить

innodb_flush_log_at_trx_commit = 2

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

отключите проверку внешнего ключа и включите автоматическую фиксацию.

Ответ 7

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

Ответ 9

Другой альтернативой является http://www.mydumper.org - многопоточное резервное копирование/восстановление mysql, которое в 3х - 10 раз быстрее, чем mysqldump, и может обрабатывать оба MyISAM и InnoDB, а также Drizzle http://vbtechsupport.com/1695/