MySQL - pt-online-schema-change влияет на производительность БД - PullRequest
1 голос
/ 08 декабря 2011

Я хочу использовать pt-online-schema-change для изменения схемы большой таблицы (~ 100M записей), влияет ли этот инструмент на производительность MySql во время его работы?

Ответы [ 3 ]

3 голосов
/ 25 мая 2014

По своей сути инструмент не окажет существенного влияния на производительность.Во-первых, давайте рассмотрим, что делает инструмент:

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

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

К счастью, вторая часть разбита на куски, а pt-online-schema-change довольно сообразителен, насколько великаколичество чанков и время ожидания между чанками:

  • он проверяет ведомую репликацию между чанками и делает паузу, если задержка слишком велика.он может рекурсивно проверять наличие ведомых.
  • проверяет нагрузку (обычно измеряется числом запущенных потоков) и делает паузу, если выполняется слишком много запросов (что подразумевает конфликт блокировки или высокую загрузку ЦП/ IO использование).он может даже прерваться, если нагрузка слишком высока.
  • он настраивает параметры блокировки InnoDB таким образом, что он, скорее всего, станет жертвой любого конфликта блокировки, поэтому производственные запросы будут работать бесперебойно.
  • по умолчанию, размер чанка динамически изменяется , чтобы поддерживать согласованность времени выполнения с использованием средневзвешенного значения предыдущих чанков.
  • чанков, которые слишком велики (например, из-за огромного количества строк с одним и тем же ключом) будет пропущено .

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

1 голос
/ 17 января 2014

Онлайн-изменение схемы довольно интенсивно, при этом все операции вставки / обновления / удаления в исходную таблицу удваиваются (инструмент добавляет триггеры, поэтому эти действия дублируются в новой копии) и по частям каждая строка оригинала таблица скопирована.

Если вас беспокоит, какое влияние это может оказать на вашу базу данных, ознакомьтесь с документом: http://www.percona.com/doc/percona-toolkit/2.2/pt-online-schema-change.html

Есть несколько способов, которыми вы можете настроить инструмент самостоятельно, включая проверку количества потоков, задержки репликации и изменение размера каждого чанка / сколько времени должен занимать каждый чанк.

0 голосов
/ 08 декабря 2011

Это будет читать и записывать данные на диск, использовать память и использовать ЦП, так что да, будет влиять на производительность во время работы. Как могло быть иначе?

...