一 、设置开启慢查询
1.1 如何发现比较慢的sql
使用mysq慢查日志对有效率问题的sql进行监控
long_query_time: 慢查询时间,定义超过1秒的查询计数到变量Slow_queries
slow_query_log: 慢查询日志是否开启
show_query_log_file: 慢查询日志路径
log_queries_not_using_indexes:没有使用索引的查询
show variables like ‘%slow_query%’;
set global slow_query_log=on;
set global show_query_log_file =’/home/mysql/sql_log/mysql-show.log’;
set global log_queries_not_using_indexes=on;
set global long_query_time = 1
注意:更新variable值之后,需要重新断掉mysql,再连接,再进行查询则显示更改之后的值
1.2 慢查询包含的内容
二 、慢查询日志分析工具
2.1 mysqldumpslow
mysql 自带工具
Linux下mysql:
在 windows 下可以在mysql/bin目录下可以找到 mysqldumpslow.pl 文件,是一个 perl 格式的文件,如下图:
windows下需要使用perl(Practical Extraction and Report Language:实用报表提取语言)语言:
-h:查询帮助
perl C:\java\mysql\mysql-8.0.12\bin\mysqldumpslow.pl -s t -a -t 3 C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log
Count:执行次数 Time: 执行时间 Lock: 锁定时间 Row: 返回行数
将结果集输出到文件:
perl mysqldumpslow.pl C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log | more
2.2 pt-query-digest
在我的 mysql/bin 文件夹下并没有 pt-query-digest.pl 文件,所以需要手动下载;
curl -o pt-query-digest.pl https://www.percona.com/get/pt-query-digest
进度变为100%后即为下载成功!
perl pt-query-digest.pl C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log | more
overall:总共24条sql,15条不同的