MySQL优化SQL,针对慢SQL语句的查询及相关配置。
相关命令:
#显示慢查询SQL语句数量
show global status like '%slow_queries%';
#查看是否开启慢查询日志,并显示日志存放位置
show variables like '%slow_query_log%';
#SQL运行时间超过MySQL变量long_query_time时则被记录为慢SQL(记录到日志中)。
show global variables like '%long_query_time%';
需要永久开启慢SQL查询日志,需要在my.ini
(或my.cnf
等)配置文件中的[mysqld]
下添加相关配置:
#输出形式为文件
log-output=FILE
#1: 开启 | 0:不开启
slow-query-log=0
#慢SQL日志存放路径
slow_query_log_file="DESKTOP-HIOGK6K-slow.log"
#慢SQL语句统计时间(超过该阈值则记录中慢SQL日志中)
long_query_time=10
配置完毕后需要重启MySQL服务。
MySQL还提供了日志分析工具:mysqldumpslow
语法格式为:
mysqldumpslow [OPTS...] [LOGS...]
简单相关示例
#得到返回记录集最多的15个SQL
mysqldumpslow -s r -t 15 [要查询的日志文件路径]
#得到访问次数最多的15个SQL
mysqldumpslow -s c -t 15 [要查询的日志文件路径]
#得到按照时间排序的前20条里面含有左连接的查询语句
mysqldumpslow -s t -t 20 -g "left join" [要查询的日志文件路径]
网友评论