Подтвердить что ты не робот

Что произойдет, если вы убьете долгосрочный альтернативный запрос?

Что произойдет, если вы убьете длинный альтернативный запрос? Будет ли запрос запроса просто возвращаться? Как долго это может произойти (как часть времени, когда оно уже работает)?

Что делать, если этот запрос реплицируется на другой сервер? Будет ли убивать процесс на другом сервере, чтобы вернуть исходный запрос на изменение сервера?

Мы запускаем mysql

4b9b3361

Ответ 1

Это зависит от того, что вы делаете. Если вы выполняете команду an alter table...add index в таблице InnoDB (не так уверенно в MyISAM), тогда она будет запускаться и запускаться, когда она сначала копирует весь столбец "стоп-стоп-баррель": если это в середине "copy to temp table", тогда он практически не останавливается.

Смотрите здесь:

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

Ответ 2

Что делать, если этот запрос реплицируется на другой сервер?

ALTER будет выполнен и на этом сервере с соответствующими воздействиями.

Будет ли убивать процесс на другом сервере, чтобы вернуть исходный запрос на изменение сервера?

Неа. У исходного сервера нет обратного канала, чтобы узнать о том, что произошло (или нет) на подчиненном устройстве. Если вы убьете ALTER на подчиненном устройстве, то вы закончите работу в ситуации, когда мастер имеет новое ограничение или индекс, а подчиненный - нет. Это редко рецепт счастья:)

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