sql >> Database teknologi >  >> RDS >> Mysql

SQL:Afbryder en forespørgsel

Imho "afbrudt" bør erstattes af 'dræbt' eller 'termineret'. Konceptet med at afbryde kan være forvirrende, da man kunne antage, at det ville gøre det muligt at genoptage forespørgslen senere.

SQL-standarden giver ikke mulighed for at afbryde eller afslutte en kørende forespørgsel, men hver DBMS jeg kender implementerer en KILL-kommando eller lignende. For eksempel kan en bruger i MySQL bruge VIS [FULD] PROCESLISTE til at se alle kørende forespørgsler (og deres tilstande, forespørgsels-id'er osv.). Brugere med KILL-privilegiet kan derefter afslutte en forespørgsel.

De fleste KILLs sker, fordi en forespørgsel risikerer at køre for lang eller blokerer andre forespørgsler, f.eks. tabellen mangler et indeks, eller disken er fuld. Når du er ligeglad med resultatet (f.eks. bruger annulleret webstedsnavigation), vil webserveren ofte selv afbryde processen og dermed forespørgslen i sig selv (ingen manuel eller programmørinteraktion nødvendig)



  1. Et kig på DBCC CHECKCONSTRAINTS og I/O

  2. Ugyldigt XML-format - Sådan undgår du dette

  3. MySQL - Tabel 'my_table' var ikke låst med Lock Tables

  4. Kombinerer resultaterne af to separate MySQL-forespørgsler