MySQL優(yōu)化SQL,針對(duì)慢SQL語句的查詢及相關(guān)配置。
相關(guān)命令:
#顯示慢查詢SQL語句數(shù)量
show global status like '%slow_queries%';
#查看是否開啟慢查詢?nèi)罩?并顯示日志存放位置
show variables like '%slow_query_log%';
#SQL運(yùn)行時(shí)間超過MySQL變量long_query_time時(shí)則被記錄為慢SQL(記錄到日志中)。
show global variables like '%long_query_time%';
需要永久開啟慢SQL查詢?nèi)罩?需要在my.ini(或my.cnf等)配置文件中的[mysqld]下添加相關(guān)配置:
#輸出形式為文件
log-output=FILE
#1: 開啟 | 0:不開啟
slow-query-log=0
#慢SQL日志存放路徑
slow_query_log_file="DESKTOP-HIOGK6K-slow.log"
#慢SQL語句統(tǒng)計(jì)時(shí)間(超過該閾值則記錄中慢SQL日志中)
long_query_time=10
配置完畢后需要重啟MySQL服務(wù)。
MySQL還提供了日志分析工具:mysqldumpslow
語法格式為:
mysqldumpslow [OPTS...] [LOGS...]
簡(jiǎn)單相關(guān)示例
#得到返回記錄集最多的15個(gè)SQL
mysqldumpslow -s r -t 15 [要查詢的日志文件路徑]
#得到訪問次數(shù)最多的15個(gè)SQL
mysqldumpslow -s c -t 15 [要查詢的日志文件路徑]
#得到按照時(shí)間排序的前20條里面含有左連接的查詢語句
mysqldumpslow -s t -t 20 -g "left join" [要查詢的日志文件路徑]