KILL [CONNECTION | QUERY] thread_id
Chaque connexion à mysqld
utilise un
thread unique. Vous pouvez voir les threads en cours
d'exécution en utilisant la commande SHOW
PROCESSLIST
et en terminer un avec la commande
KILL thread_id
.
Depuis MySQL 5.0.0, KILL
autorise les
options CONNECTION
et
QUERY
:
KILL CONNECTION
est similaire à
KILL
sans option : elle termine la
connexion associée avec le thread
thread_id
.
KILL QUERY
termine la requête que la
connexion est actuellement en train de traiter, mais
laisse la connexion ouverte.
Si vous avez le droit PROCESS
, vous pouvez
voir tous les threads. Si vous avez le droit
SUPER
, vous pouvez terminer tout les
threads. Sinon, vous ne pouvez terminer que vos propres
threads.
Vous pouvez aussi utiliser les commandes mysqladmin
processlist
et mysqladmin kill
pour examiner et terminer les threads.
Note : vous ne pouvez
actuellement pas utiliser KILL
avec la
bibliothèque du serveur embarqué, car celui-ci utilise les
threads de l'application hôte, il ne crée pas ses propres
threads.
Quand vous exécutez un KILL
, un thread
spécifique est crée pour ce thread.
Dans la plupart des cas, la terminaison du thread pourra prendre un certain temps vu que le thread de terminaison est invoqué à intervalles spécifiques.
Pour les boucles de SELECT
,
ORDER BY
et GROUP
BY
, le thread de terminaison est vérifié
après avoir lu un enregistrement. S'il est activé, la
requête est abandonnée.
Lors d'un ALTER TABLE
le thread de
terminaison est vérifié avant la lecture de chacune des
colonnes de la table d'origine. S'il est activé, la
commande est abandonnée et la table temporaire effacée.
Lors d'un UPDATE
ou d'un
DELETE
, le thread de terminaison est
vérifié après chaque lecture de bloc et chaque mise à
jour ou suppression de ligne. S'il est activé, la
requête est abandonnée. Notez que si vous utilisez les
transactions, les modifications ne seront pas perdues !
GET_LOCK()
stoppera avec
NULL
.
Un thread INSERT DELAYED
videra
rapidement toutes les lignes en mémoire et se terminera.
Si le thread est dans le gestionnaire des verrous de
tables (état : Locked
), le verrou sur
la table sera vite enlevé.
Si le thread est en attente de libération d'espace disque
lors d'un appel à write
, l'opération
est avortée avec un message d'erreur indiquant que le
disque est plein.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.