Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X

Wählen Sie Ihre Währung

Türk Lirası $ US Dollar Euro
X
X

Wählen Sie Ihre Währung

Türk Lirası $ US Dollar Euro

Wissensdatenbank

Startseite Wissensdatenbank Allgemein Wie findet man die meistfrequentier...

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 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?
(3724 mal angesehen / 13 Kunden fanden es hilfreich)

Call now to get more detailed information about our products and services.

Top