sql >> Base de Datos >  >> RDS >> Mysql

SQL:interrumpir una consulta

Imho "interrumpido" debe ser reemplazado por "matado" o "terminado". El concepto de interrupción puede ser confuso, ya que uno podría suponer que permitiría reanudar la consulta más tarde.

El estándar SQL no proporciona una forma de interrumpir o finalizar una consulta en ejecución, pero todos los DBMS que conozco implementan un comando KILL o similar. Por ejemplo, en MySQL, un usuario puede usar SHOW [FULL] PROCESSLIST para ver todas las consultas en ejecución (y sus estados, ID de consulta, etc.). Los usuarios con el privilegio KILL pueden finalizar una consulta.

La mayoría de los KILL ocurren porque una consulta corre el riesgo de durar demasiado o está bloqueando otras consultas, p. a la tabla le falta un índice o el disco está lleno. Cuando no le importa el resultado (p. ej., el usuario canceló la navegación del sitio), a menudo el propio servidor web abortará el proceso y, por lo tanto, la consulta en sí misma (no es necesaria la interacción manual o del programador)