Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL:Unterbrechen einer Abfrage

Imho sollte "interrupted" durch "killed" oder "terminated" ersetzt werden. Das Konzept der Unterbrechung kann verwirrend sein, da man annehmen könnte, dass die Abfrage später fortgesetzt werden kann.

Der SQL-Standard bietet keine Möglichkeit, eine laufende Abfrage zu unterbrechen oder zu beenden, aber jedes DBMS, das ich kenne, implementiert einen KILL-Befehl oder ähnliches. Beispielsweise kann ein Benutzer in MySQL die SHOW [FULL] PROCESSLIST verwenden, um alle laufenden Abfragen (und deren Status, Abfrage-IDs usw.) anzuzeigen. Benutzer mit der Berechtigung KILL können dann eine Abfrage beenden.

Die meisten KILLs passieren, weil eine Abfrage zu lange läuft oder andere Abfragen blockiert, z. Der Tabelle fehlt ein Index oder die Festplatte ist voll. Wenn Sie sich nicht um das Ergebnis kümmern (z. B. Seitennavigation vom Benutzer abgebrochen), bricht der Webserver oft selbst den Vorgang und damit die Abfrage selbst ab (keine manuelle oder Programmierer-Interaktion erforderlich)