MySQL自帶慢日志排查慢查詢SQL
根據(jù)MySQL自帶慢日志功能定位慢SQL
1、查詢有關(guān)query的相關(guān)變量:
show global variables like '%quer%';

參數(shù)解釋:
- log_queries_not_using_indexes:是否記錄不使用索引查詢的SQL,默認OFF 可通過命令:set global log_queries_not_using_indexes=on; 開啟
- long_query_time:慢查詢的閾值
- slow_query_log:開啟慢查詢SQL記錄,默認OFF
- slow_query_log_file:慢查詢SQL記錄日志位置
2、開啟慢查詢?nèi)罩?/h2>
set global slow_query_log=on;
set global slow_query_log=on;
3. 設置慢查詢閾值
set global long_query_time=1;
閾值的默認值是10s,自行設置,只要SQL的實際執(zhí)行時間超過了這個閾值,就會被記錄到慢查詢的日志里面,線上業(yè)務一般建議把long_query_time設置為1s,如果某個業(yè)務的MySQL要求比較高的QPS,可設置慢查詢?yōu)?.1s。
一般測試環(huán)境建議long_query_time設置的閥值比生產(chǎn)環(huán)境的小,比如生產(chǎn)環(huán)境是1s,則測試環(huán)境建議配置成0.5s。便于在測試環(huán)境及時發(fā)現(xiàn)一些效率的SQL。
4.查看慢查詢?nèi)罩?/h2>
1)確定文件位置:
show global variables like 'slow_query_log_file';

2)查看日志:

可以看到Query_time: 2.752885s,超過了1s,所以會被記錄
其他的參數(shù)解釋如下:
Time:慢查詢發(fā)生的時間
Query_time:查詢時間
Lock_time:等待鎖表的時間
Rows_sent:語句返回的行數(shù)
Rows_exanined:語句執(zhí)行期間從存儲引擎讀取的行數(shù)(重點關(guān)注提前優(yōu)化)
其他方式定位慢SQL
如果覺得系統(tǒng)自帶的慢查詢?nèi)罩静环奖悴榭?,可以使?strong>pt-query-digest或者mysqldumpslow等工具對慢查詢?nèi)罩具M行分析。
PS:有的慢查詢正在執(zhí)行,結(jié)果已經(jīng)導致數(shù)據(jù)庫負載過高,而由于慢查詢還沒執(zhí)行完,因此慢查詢?nèi)罩究床坏饺魏握Z句,此時可以使用show processlist命令查看正在執(zhí)行的慢查詢。show processlist顯示哪些線程正在運行,如果有PROCESS權(quán)限,則可以看到所有線程。否則,只能看到當前會話線程。
總結(jié)
到此這篇關(guān)于MySQL自帶慢日志排查慢查詢SQL的文章就介紹到這了,更多相關(guān)MySQL排查慢查詢SQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 數(shù)據(jù)庫優(yōu)化的具體方法說明
以下的文章主要講述的是實現(xiàn)MySQL數(shù)據(jù)庫簡單實用優(yōu)化的具體方法,以及在實際操作中有哪些具體操作步驟是值得我們大家注意的。2010-05-05
在win10系統(tǒng)下安裝Mysql 5.7.17圖文教程
因為想要在公司電腦上安裝Mysql,于是到官網(wǎng)上下載了最新版本的Mysql-5.7.17,其實安裝方法也很簡單,下面小編把安裝過程分享到腳本之家平臺供大家參考2017-03-03
Mysql?InnoDB聚簇索引二級索引聯(lián)合索引特點
這篇文章主要為大家介紹了Mysql?InnoDB聚簇索引二級索引聯(lián)合索引特點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05

