Справочное руководство по MySQL версии 4.1.1-alpha


Инстаграмм здесь. | На сайте www.kostymi.ru костюм Деда Мороза Батик. |

Глава 4.5.5 Синтаксис команды KILL


KILL thread_id

Каждое соединение с mysqld запускается в отдельном потоке. При помощи команды SHOW PROCESSLIST можно просмотреть список запущенных потоков, а при помощи команды KILL thread_id - удалить поток.

Если у вас есть привилегия PROCESS, можно просмотреть все потоки. Обладая привилегией SUPER, можно удалять любые потоки. В противном случае можно просматривать и удалять только свои собственные потоки.

Для просмотра и удаления потоков можно также применять команды mysqladmin processlist и mysqladmin kill.

При использовании команды KILL для потока устанавливается специальный флаг kill flag.

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

  • В циклах SELECT, ORDER BY и GROUP BY флаг проверяется только после считывания блока строк. Если установлен флаг удаления, то выполнение оператора будет отменено.

  • При выполнении команды ALTER TABLE флаг удаления проверяется перед считыванием каждого блока строк из исходной таблицы. Если флаг установлен, то выполнение команды отменяется и временная таблица удаляется. При выполнении команд UPDATE и DELETE флаг удаления проверяется после каждого считывания блока, а также после каждого обновления или удаления строки. Если флаг удаления установлен, то выполнение оператора отменяется. Обратите внимание: если не используются транзакции, то отменить изменения будет невозможно!

  • GET_LOCK() будет отменен при помощи NULL.

  • Поток INSERT DELAYED быстро сбросит все строки, которые он содержит в памяти и будет удален.

  • Если поток находится в заблокированной таблице (состояние: Locked), то блокировка таблицы будет быстро отменена.

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




    Содержание  Назад  Вперед