MySQL Drop INDEX и REPLICATION - PullRequest
       39

MySQL Drop INDEX и REPLICATION

0 голосов
/ 08 июня 2011

В сценарии MySQL MASTER MASTER с использованием InnoDB

При удалении индекса в одном экземпляре будет доступна та же таблица в другом экземпляре?

Какова последовательность действий?Я предполагаю следующую последовательность:

  1. DROP INDEX на 1-м экземпляре
  2. Добавлен в двоичный журнал
  3. DROP INDEX на 2-м экземпляре

Кто-нибудь может подтвердить?

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Я верю, что произойдет следующее:

  • Ваш DROP INDEX (который действительно запускает ALTER TABLE ... DROP INDEX) работает на мастере
  • Если ALTER завершится успешно, оператор будет добавлен в журнал и будет запущен на ведомом

Это означает, что ALTER TABLE на другом компьютере не запустится, пока ALTER TABLE не будет успешно завершен на первом (главном) компьютере.

Пока ALTER TABLE работает на любой машине, таблица некоторое время будет читаемой, а затем не читаемой и не записываемой, поскольку MySQL сначала создает внутреннюю копию таблицы, а затем применяет изменения.

С http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

В большинстве случаев ALTER TABLE работает делая временную копию оригинальный стол. Переделка выполняется на копии, а затем исходная таблица удаляется, а новая один переименован. Пока ALTER TABLE есть выполнение, исходная таблица читается другими сессиями. Обновления и записи в таблицу зашли в тупик пока новый стол не будет готов, а затем автоматически перенаправляются на новая таблица без каких-либо неудачных обновлений. Временная таблица создается в каталог базы данных новой таблицы. Это может отличаться от каталог базы данных оригинала таблица, если ALTER TABLE переименовывает таблицы в другую базу данных.

0 голосов
/ 08 июня 2011

В сценарии MySQL MASTER MASTER с использованием InnoDB

Насколько я знаю, такая вещь невозможна.Вам нужно будет использовать NDB или быть в среде с несколькими ведущими и ведомыми устройствами с автоматически увеличивающимися полями, настроенными для увеличения на 1/2/3 / более.Итак, если предположить последнее.(Примечание: если вам известно решение на основе InnoDB, поделитесь.)

При удалении индекса в одном экземпляре будет доступна та же таблица в другом экземпляре?

Удаление только индекса означает, что ваш индекс будет недоступен.Не стол.Он будет записан (и распространен) в двоичный журнал и помечен.

...