Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was soll ich tun, wenn die gespeicherte MySQL-Prozedur zu langsam ist?

王林
Freigeben: 2020-09-27 14:48:32
Original
3521 Leute haben es durchsucht

Lösung für das Problem, dass die gespeicherte MySQL-Prozedur zu langsam ist: Öffnen Sie zuerst die Konfigurationsdatei my.cnf und fügen Sie dann die Konfiguration [long_query_time=1] hinzu. Überwachen Sie dann die SQL-Anweisung über [tail -f /tmp/logs/mysqld .log]-Befehl; schließlich ist die Zieloptimierung ausreichend. 🔜 /tmp/logs/mysqld.log überwacht alle ausgeführten SQL-Anweisungen. Mit derselben Methode können Sie mysqlslowquery.log auf SQL-Anweisungen überwachen, deren Ausführungszeit long_query_time = 1 (Sekunden) überschreitet mysql seit Die definierte Funktion func_getDevice(); wird 15 Sekunden lang langsam ausgeführt, aber wir wissen nicht, welche SQL-Anweisung in dieser Methode die Leistung beeinflusst, daher gibt es einen zweiten Schritt.

Schritt 2: Geben Sie die MySQL-Befehlszeile ein und geben Sie

#执行的sql
log=/tmp/logs/mysqld.log 
#记录sql执行超过下面设置时间的sql
log-slow-queries = /tmp/mysqlslowquery.log
#执行时间大于等于1秒
long_query_time = 1
Nach dem Login kopieren
ein. Zu diesem Zeitpunkt wird eine detaillierte SQL-Ausführungsliste angezeigt. Standardmäßig werden jedoch nur 15 SQLs aufgezeichnet. Wenn die Methode mehr SQLs enthält, können Sie diese festlegen
mysql> set profiling=1;
mysql> select func_getDevice(1);
mysql> show profiles;
+----------+------------+-----------------------+
| Query_ID | Duration   | Query                 |
+----------+------------+-----------------------+
|        1 | 0.00250400 | select * from TDevice |
+----------+------------+-----------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Was soll ich tun, wenn die gespeicherte MySQL-Prozedur zu langsam ist?Zu diesem Zeitpunkt können Sie genau sehen, welche SQL-Anweisung sich auf die Leistung auswirkt. Query_ID=1 select * from TDevice wirkt sich auf die Leistung aus.

mysql> set profiling_history_size=20;
mysql> show variables like 'profiling%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| profiling              | ON    |
| profiling_history_size | 15    |
+------------------------+-------+
2 rows in set (0.00 sec)
mysql> select func_getDevice(1);
mysql> show profiles;
Nach dem Login kopieren

Überprüfen Sie, ob der Index der Tabelle angemessen ist, und verbessern Sie ihn durch gezielte Optimierung .

Verwandte Empfehlungen: php-Training

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die gespeicherte MySQL-Prozedur zu langsam ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage