У меня есть запрос, который выполняется в течение нескольких часов. Если я отменю этот запрос, что произойдет с базой данных?
Запрос является ALTER TABLE
который добавляет новый столбец.
ОБНОВИТЬ: Я выполнил сценарий таким образом
mysql -u username -p database
mysql> ALTER TABLE `table_name` ADD COLUMN `new_column` INT(1);
AFAIK вы могли бы запустить:
Чтобы увидеть, что это за поток, убейте его:
УБИТЬ [СОЕДИНЕНИЕ | QUERY] thread_id;
Во время ALTER TABLE флаг уничтожения проверяется перед чтением каждого блока строк из исходной таблицы. Если установлен флаг уничтожения, выполнение оператора прерывается, и временная таблица удаляется.
Что касается побочных эффектов, я не могу сказать вам, что именно могло случиться.
Я могу ошибаться здесь, но если вы не укажете BEGIN TRANSACTION
, каждая команда представляет собой автономную транзакцию.
Таким образом, при отмене запроса не должно быть никаких побочных эффектов.