Schritt 2: Geben Sie die MySQL-Befehlszeile ein und geben SieLö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.
#执行的sql log=/tmp/logs/mysqld.log #记录sql执行超过下面设置时间的sql log-slow-queries = /tmp/mysqlslowquery.log #执行时间大于等于1秒 long_query_time = 1
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)
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;
Ü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!