Вопрос

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

Сюда входят настройки my.cnf, использование виртуальных дисков и т. д.

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

Это было полезно?

Решение

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

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

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

Другие советы

  1. Получите копию Высокопроизводительный MySQL.Отличная книга.
  2. Расширенные вставки в дампы
  3. Сброс с форматом -tab, чтобы вы могли использовать MySQLimport, который быстрее, чем MySQL <Dimplefile
  4. Импортируйте с помощью нескольких потоков, по одному для каждой таблицы.
  5. Если возможно, используйте другой механизм базы данных.Импорт в тяжелый транзакционный двигатель, такой как Innodb, ужасно медленная.Вставить в не транзакционный двигатель, такой как Myisam, намного быстрее.
  6. Посмотрите на таблицу, сравнивая скрипт в инструментарии Maakit и посмотрите, сможете ли вы обновить свои таблицы, а не сбрасывать их и импортировать.Но вы, вероятно, говорите о резервных копиях/восстановлении.

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

innodb_flush_log_at_trx_commit = 2

в вашей my.cnf, временно, пока выполняется импорт.Вы можете вернуть его обратно 1 если вам нужна КИСЛОТА.

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

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

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

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

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

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

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

Используйте индексы, но не слишком много, активируйте кеш запросов, используйте sphinx для больших баз данных, вот несколько хороших советов. http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql (На французском)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top