Arama Yap Mesaj Senden
Rückruf anfordern
+90
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro
X
X

Wählen Sie Ihre Währung

Türkische Lira $ US Dollar Euro

Wissensdatenbank

Startseite Wissensdatenbank Allgemein Wie findet man die meistfrequentier...

Kontaktieren Sie uns

Standort Halkali Merkez Viertel Fatih Str. Ozgur Apt. No. 46, Kucukcekmece, Istanbul, 34303, TR

Wie findet man die meistfrequentierte SQL-Abfrage in MySQL?

Der Befehl mysqladmin processlist wird verwendet, um die aktuell aktiven Abfragen in einer MySQL/MariaDB-Datenbank anzuzeigen. Dieser Befehl ist ideal, um zu verstehen, welche Abfragen die Systemressourcen belasten, insbesondere in Situationen mit hoher CPU- oder Festplattenauslastung.

Wir beginnen mit dem folgenden Befehl:

mysqladmin -u root -p processlist

Nachdem Sie den Befehl ausgeführt haben, werden Sie nach dem Passwort gefragt und anschließend werden alle laufenden Prozesse aufgelistet:

Beispielausgabe:

+----+------+-----------+----------+---------+------+-------+------------------+
| Id | User | Host      | db       | Command | Time | State | Info             |
+----+------+-----------+----------+---------+------+-------+------------------+
| 12 | user | localhost | mydb     | Query   | 50   | Sending data | SELECT * FROM large_table |
| 13 | user | localhost | mydb     | Sleep   | 20   |       | NULL             |

Hier sind die zu beachtenden Spalten:

  • Time: Zeigt an, wie lange die Abfrage bereits läuft. Hohe Werte können das System belasten.

  • Command: "Query" sind aktive Abfragen. "Sleep" sind Sitzungen, bei denen die Verbindung offen ist, aber keine Operationen ausgeführt werden.

  • Info: Die vollständige SQL-Abfrage, die ausgeführt wird, wird hier angezeigt.

Identifizieren von Abfragen mit hoher Ressourcenauslastung:

grep und awk können verwendet werden, um die processlist-Ausgabe zu filtern:

mysqladmin -u root -p processlist | grep -i select

Um nur die lang laufenden anzuzeigen:

mysql -u root -p -e "SELECT * FROM information_schema.processlist WHERE TIME > 30 ORDER BY TIME DESC;"

Mit diesem Befehl können Sie alle Abfragen sehen, die seit mehr als 30 Sekunden laufen.

Für eine detailliertere Überwachung:

Um eine periodische Überwachung durchzuführen:

watch -n 2 'mysqladmin -u root -p processlist'

Dieser Befehl zeigt die laufenden Prozesse alle 2 Sekunden erneut an.

Beenden von Abfragen mit hoher Intensität:

Einige Abfragen können sehr lange dauern und das System blockieren. Um die Abfrage zu beenden:

KILL 12;

Hier ist 12 der Wert in der Spalte Id.

Mit diesen Methoden können Sie Abfragen identifizieren und eingreifen, die Systemressourcen auf Ihrem MySQL/MariaDB-Server verbrauchen. Insbesondere in großen Datenbanken ist der Befehl processlist für die Live-Performance-Überwachung sehr wertvoll.

 

Finden Sie nicht die Informationen, die Sie suchen?

Ticket erstellen
Fanden Sie es nützlich?
(4096 mal angesehen / 14 Kunden fanden es hilfreich)
Top