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

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

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

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

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
51
0
54 592
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

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

Jonathan 21.02.2009 23:33

Почему клиент MySQL не может обрабатывать даже умеренно большие дампы с расширенными вставками?

che 22.02.2009 01:07

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

Ztyx 19.04.2010 13:10

fwiw Я импортировал дамп размером 10 ГБ, используя расширенные вставки, и он прошел безупречно.

alxgb 23.05.2014 18:24
  1. Получите копию Высокая производительность MySQL. Отличная книга.
  2. Удлиненные вставки в отвалах
  3. Дамп в формате --tab, чтобы вы могли использовать mysqlimport, который быстрее, чем mysql <dumpfile
  4. Импорт с несколькими потоками, по одному для каждой таблицы.
  5. Если возможно, используйте другой механизм базы данных. импорт в тяжело транзакционный движок, такой как innodb, ужасно медленный. Вставка в нетранзакционный движок, например MyISAM намного быстрее.
  6. Посмотрите на сценарий сравнения таблиц в наборе инструментов Maakit и посмотрите, сможете ли вы обновляйте свои таблицы, а не выгружайте их и импортируйте. Но вы, наверное, говорите о резервном копировании / восстановлении.

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

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

innodb_flush_log_at_trx_commit = 2

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

Интересно, не будет ли установка 0 еще быстрее?

Petr 01.06.2013 11:50

действительно не понимал, что это делает, но это ускорило восстановление моего большого дампа базы данных innoDB. для MyISAM dbs помогло увеличение key_buffer_size (до 30% доступной памяти).

arun 22.09.2013 05:19

Просто любопытно, делает ли SET autocommit = 0 это ненужным?

Sian Lerk Lau 02.01.2014 06:50
Ответ принят как подходящий

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

If you’ve been wishing for multi-threaded mysqldump, wish no more. This tool dumps MySQL tables in parallel. It is a much smarter mysqldump that can either act as a wrapper for mysqldump (with sensible default behavior) or as a wrapper around SELECT INTO OUTFILE. It is designed for high-performance applications on very large data sizes, where speed matters a lot. It takes advantage of multiple CPUs and disks to dump your data much faster.

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

Согласно странице руководства mk-parallel-dump (maatkit.org/doc/mk-parallel-dump.html), его не следует использовать для резервного копирования. Остерегаться!

Ztyx 19.04.2010 12:59

Maatkit теперь является частью Percona Toolkit (launchpad.net/percona-toolkit)

drewish 21.12.2011 21:08

Как называется команда в percona-toolkit?

Bogdan Gusiev 15.01.2013 19:33

Увы, но сейчас его нет в percona-toolkit.

Alister Bulman 16.01.2013 03:31

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

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

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

Ссылка says --disable-keys is 'effective only for nonunique indexes of MyISAM tables'.
kapex 02.03.2013 14:57

kapep - спасибо за исправление. Я обновил ответ.

Ztyx 27.03.2013 04:09

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

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

Вы не должны просто давать ссылку на другой сайт в качестве ответа, так как сайт может устареть в будущем. Вместо этого нажмите ссылку «изменить» в этом ответе и включите сюда основные части решения с этой страницы. См .: meta.stackexchange.com/q/8259

Peter O. 14.11.2012 10:10

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

ссылка mydumper.org ведет на пустой сайт.

so_mv 19.10.2013 06:54

да, срок действия домена истек .. есть зеркало на centminmod.com/mydumper.html для документации

p4guru 11.11.2013 02:34

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