打開MySQL慢查詢
MySQL慢查詢記錄日志對於跟蹤PHP+MySQL體系下的MySQL負載調優問題很有用處,比如安裝了很多Discuz!插件的用戶,這樣可以大概排查出那些插件有代碼問題。其實啟用MySQL的慢查詢日志很簡單,只需要在MySQL的配置文件裡添加log-slow-querIEs和 long_query_time兩個參數即可。
今天有個朋友問我,就順帶記錄上來。更多的MySQL 優化信息可以查看這裡:http://www.ccvita.com/category/MySQL
Windows下開啟MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.ini找到[MySQLd]下面加上
log-slow-querIEs = F:\MySQL\log\MySQLslowquery.log
long_query_time = 2
Linux下啟用MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.cnf找到[MySQLd]下面加上
log-slow-querIEs=/data/MySQLdata/slowquery.log
long_query_time=2
注意
log-slow-querIEs = F:\MySQL\log\mysqlslowquery.log為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄;
long_query_time=2中的2表示查詢超過兩秒才記錄;
2009年09月24日更新
在my.cnf或者my.ini中添加log-querIEs-not-using-indexes參數,表示記錄下沒有使用索引的查詢。比如:
log-slow-querIEs=/data/MySQLdata/slowquery.log
long_query_time=2
log-querIEs-not-using-indexes
MySQLdumpslow命令
/path/mysqldumpslow -s c -t 10 /database/MySQL/slow-log
這會輸出記錄次數最多的10條SQL語句,其中:
比如
/path/mysqldumpslow -s r -t 10 /database/MySQL/slow-log
得到返回記錄集最多的10個查詢。
/path/mysqldumpslow -s t -t 10 -g “left join” /database/MySQL/slow-log
得到按照時間排序的前10條裡面含有左連接的查詢語句。
SHOW VARIABLES
SHOW VARIABLES是查看MySQL的配置參數,還可以使用類似SHOW VARIABLES LIKE ‘Key%’
SHOW PROCESSLIST
SHOW PROCESSLIST是查看當前正在進行的進程,對於有鎖表等情況的排查很有用處。一般情況下,打開MySQL的慢查詢記錄 同樣有利於排查。
SHOW OPEN TABLES
SHOW OPEN TABLES是顯示當前已經被打開的表列表。
小結
使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對MySQL查詢語句的監控、分析、優化是MySQL優化的第一步,也是非常重要的一步。