定位慢查詢一般有幾種方式如下
1、業(yè)務驅(qū)動
業(yè)務反饋,查詢很慢/
2、測試驅(qū)動
測試進行壓力測試時,發(fā)現(xiàn)某些查詢很慢。
3、慢查詢?nèi)罩?/p>
自己查詢慢查詢?nèi)罩尽?/p>
show variables like 'slow_query_log'
查看slow_query_log是否有開啟。
set global slow_query_log = on
設置開啟
set global slow_query_log_file = '/var/lib/mysql/gupaoedu-slow.log'
設置慢查詢?nèi)罩?/p>
set global log_queries_not_using_indexes = on
沒有命中索引的sql查詢要不要記錄到慢查詢。
set global long_query_time = 0.1 (秒)
慢查詢超過0.1秒的就記錄進慢查詢?nèi)罩局小?/p>

image.png
慢查詢?nèi)罩痉治?/h2>

Time :日志記錄的時間
User@Host:執(zhí)行的用戶及主機
Query_time:查詢耗費時間 Lock_time 鎖表時間 Rows_sent 發(fā)送給請求方的記錄
條數(shù) Rows_examined 語句掃描的記錄條數(shù)
SET timestamp 語句執(zhí)行的時間點
select .... 執(zhí)行的具體語句
使用mysql提供的工具
mysqldumpslow -t 10 -s at /var/lib/mysql/gupaoedu-slow.log

image.png
其他工具: mysqlsla 、 pt-query-digest