MySQL“慢SQL”定位


MySQL“慢SQL”定位

數據庫調優我個人覺得必須要明白兩件事
	1.定位問題(你得知道問題出在哪里,要不然從哪里調優呢)
	2.解決問題(這個沒有基本的方法來處理,因為不同的問題處理的方式方法不一樣,
得從實踐中不斷的探索,如sql調優,配置優化,硬件升級等等) 

這一篇文章將會教會你如何來定位一個慢查詢的sql,如果你是一個初學者,很想知道在mysql
中如何來定位哪些sql語句是花時間最長的。

步驟1:查詢是否開啟了慢查詢

show variables like '%slow%'; 

下面會輸出相關的信息 
+---------------------+-----------------------------+ 
| Variable_name       | Value                       | 
+---------------------+-----------------------------+ 
| log_slow_queries    | ON                          | 
| slow_launch_time    | 2                           | 
| slow_query_log      | ON                          | 
| slow_query_log_file | /data/mysql-slow/mysql-slow | 
+---------------------+-----------------------------+ 
我這里是開啟了,沒有開啟的,直接set log_slow_queries on 就ok了。 

步驟2:設置慢查詢的時間限制

mysql默認的慢查詢時間是10秒,可以設置成其它的時間。 
show variables like 'long_query_time'; 
set long_query_time=1; 

步驟3:查看慢查詢

show status like 'slow_queries'; 
它會顯示慢查詢sql的數目,具體的sql就在上面的Log file日志中可以看到。 

你也可以看到當前有多個連接在上,使用命令 show status like 'connection' 

其它命令 
show processlist: 查看哪些線程在運行; 
show open tables:查看哪些表在使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM