Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Ausführungszeit von Abfragen in MySQL begrenzen?

Wie kann ich die Ausführungszeit von Abfragen in MySQL begrenzen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 06:29:03756Durchsuche

How Can I Limit Query Execution Time in MySQL?

Durchsetzung von Zeitlimits für die Abfrageausführung in MySQL

Frage: Kann ich MySQL so konfigurieren, dass die Ausführungszeit von Abfragen eingeschränkt wird? ?

Antwort: Historisch gesehen fehlte MySQL ein Integrierter Mechanismus zur Begrenzung der Abfrageausführungszeit. Allerdings führen aktuelle Updates für MySQL 5.7 den Optimierungshinweis MAX_EXECUTION_TIME ein.

Optimierungshinweis MAX_EXECUTION_TIME:

Ab MySQL 5.7 können Sie den Optimierungshinweis MAX_EXECUTION_TIME in SELECT-Abfragen einschließen . Dieser Hinweis weist den Server an, die Abfrage zu beenden, wenn sie das angegebene Zeitlimit überschreitet.

SELECT * FROM table_name WHERE condition LIMIT 1 MAX_EXECUTION_TIME=10;

Serverweite Zeitüberschreitungen:

Wenn Sie eine serverweite benötigen Zeitüberschreitung oder die Notwendigkeit, andere Abfragen als SELECTs einzuschränken, bleibt die ursprünglich bereitgestellte Antwort Ihre beste Option.

Cron Job Ansatz:

In der ursprünglichen Antwort wird vorgeschlagen, einen Cron-Job einzurichten, der regelmäßig nach Abfragen sucht und diese beendet, die ein vordefiniertes Zeitlimit überschreiten. Dieser Ansatz umfasst die Ausführung der folgenden Schritte:

  1. Führen Sie SHOW PROCESSLIST aus, um eine Liste der laufenden Prozesse abzurufen.
  2. Identifizieren Sie Prozesse, deren Abfragezeiten den gewünschten Grenzwert überschreiten.
  3. Verwenden Sie KILL [Prozess-ID], um den Verstoß zu beenden Prozesse.

Zusätzliche Überlegungen:

Der Hinweis MAX_EXECUTION_TIME ist zwar praktisch, gilt jedoch nur für SELECT-Abfragen und kann nicht auf Serverebene erzwungen werden. Der Cron-Job-Ansatz bietet eine robustere Lösung zur Durchsetzung von Zeitlimits für alle Abfragetypen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausführungszeit von Abfragen in MySQL begrenzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn