PHP скрипты

MySQL

Apache

phpMyADmin

4.9: Синтаксис KILL в MySQL

Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Синтаксис KILL в MySQL

KILL thread_id

Каждое подключение к серверу mysqld - отдельный процесс. Вы можете видеть запущенные процессы при помощи команды SHOW PROCESSLIST и уничтожать процесс командой KILL thread_id.

KILL thread_id

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

Вы можете также использовать команды mysqladmin processlist и mysqladmin kill, чтобы исследовать и уничтожать процессы.

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

В большинстве случаев может требоваться некоторое время для того, чтобы процесс остановился, поскольку флаг kill flag может быть проверен только в специфических интервалах:

  • в циклах SELECT, ORDER BY и GROUP BY флажок будет проверен после чтения блока строк. Если он установлен, выполнение инструкции будет прервано;
  • при выполнении ALTER TABLE флаг будет проверен прежде, чем каждый блок строк считается из первоначальной таблицы. Если он установлен, команда будет прервана, а временная таблица удалена;
  • при выполнении UPDATE TABLE и DELETE TABLE, флажок будет проверен после каждого чтения блока и после каждого обновления или удаления строки. Если он установлен, инструкция будет прервана. Обратите внимание, что, если вы не используете транзакции, сделанные в таблице изменения не будут отменены!
  • GET_LOCK() прервется NULL;
  • все процессы INSERT DELAYED быстро сбросят на диск все строки, которые у них лежат в памяти, и завершатся;
  • если поток находится в драйвере блокировки таблицы (состояние: Locked), блокировка таблицы будет быстро прервана;
  • если поток ждет свободного дискового пространства в вызове write, запись немедленно прерывается с сообщением об ошибке - переполнении диска.

Поделиться с друзьями