Abfrageleistung analysieren
Das Tuning von Servervariablen dient der Verbesserung der Abfrageleistung. Während eine tiefgehende Analyse komplex ist, können Sie den integrierten Abfrage-Profiler von MySQL verwenden, um eine grundlegende Messung der Abfrageausführungszeit zu erhalten. In diesem Schritt erstellen Sie eine Testtabelle, fügen Daten ein und analysieren eine einfache Abfrage.
Verbinden Sie sich zunächst mit dem MySQL-Server.
sudo mysql -u root
Erstellen Sie eine neue Datenbank namens testdb und wechseln Sie zu dieser.
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
Erstellen Sie als Nächstes eine Tabelle namens employees, um Beispieldaten zu speichern.
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary INT
);
Fügen Sie einige Datensätze in die Tabelle employees ein.
INSERT INTO employees (name, department, salary) VALUES
('Alice', 'Sales', 60000),
('Bob', 'Engineering', 80000),
('Charlie', 'Sales', 65000),
('David', 'Marketing', 55000);
Aktivieren Sie nun den Abfrage-Profiler für Ihre Sitzung. Dies zeichnet Leistungsdaten für nachfolgende Abfragen auf.
SET profiling = 1;
Führen Sie eine Abfrage aus, die Sie analysieren möchten. Suchen wir zum Beispiel nach allen Mitarbeitern in der Abteilung 'Sales'.
SELECT * FROM employees WHERE department = 'Sales';
Um die Leistungsergebnisse anzuzeigen, verwenden Sie den Befehl SHOW PROFILES. Dieser listet die Abfragen auf, die Sie seit der Aktivierung des Profilings ausgeführt haben, und deren Dauer.
SHOW PROFILES;
Die Ausgabe wird ähnlich wie folgt aussehen und die Dauer jeder Abfrage in Sekunden anzeigen.
+----------+------------+-------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------------+
| 1 | 0.00038500 | SELECT * FROM employees WHERE department = 'Sales' |
+----------+------------+-------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
Diese Spalte Duration liefert Ihnen eine Basislinie für die Abfrageleistung. In einem realen Szenario würden Sie dieses Werkzeug verwenden, um die Abfragegeschwindigkeiten vor und nach Konfigurationsänderungen auf wesentlich größeren Datensätzen zu vergleichen.
Sie haben den Profiler erfolgreich zur Analyse einer Abfrage verwendet. Sie können die MySQL-Shell nun verlassen.
exit;