Einige SQL ist nicht gut geschrieben. Manchmal kostet eine Suche Stunden in Anwendungen. Wenn eine Anwendung (vielleicht eine Website) eine Anfrage einreicht, die lange läuft, muss ich mysql neu starten. Wie kann ich die Ausführungszeit einer SQL-Abfrage auf der Datenbankseite begrenzen?
Um eine Abfrage in MySQL nach einer langen Ausführungszeit automatisch zu beenden:
Erstellen Sie eine gespeicherte Prozedur als:
%Vor%dann in der curosr-Schleife:
%Vor% Erstellen Sie EVENT FOR EVERY 5 SECONDS
und just CALL
die obige Prozedur darin.
Hinweis: KILL QUERY beendet nur die Abfrage und die MySQL-Verbindung ist nicht unterbrochen. siehe hier .
Die einzige Möglichkeit besteht darin, SHOW PROCESSLIST eine andere Sitzung zu öffnen und dann KILL QUERY , die Sie beenden möchten.
Sie können das Befehlszeilenprogramm mysqladmin verwenden, um diese Befehle auszugeben.
Dies ist möglicherweise nicht die exakte Lösung, um die SQL-Ausführungszeit wiederherzustellen, aber ich denke, es wird hilfreich sein. Sie müssen Ihren MySQL-Server nicht neu starten.
Versuchen Sie es mit einem MySQL GUI Tool wie SQLyog . Dort können Sie die ausgeführte Abfrage manuell stoppen (klicken Sie auf die X-Schaltfläche im Screenshot), wenn Sie der Meinung sind, dass es länger dauert.
Und außerdem können Sie den Abfrageprozess auch beenden, indem Sie auf die Prozessliste zugreifen. Überprüfen Sie die anderen beiden Bilder im Screenshot mit Schritten zum Beenden von Prozessen ...
Ich hoffe, es hilft ....