本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
显示慢查询日志是否开启和日志文件所在的位置:mysql> show variables like 'slow%';
设置慢查询日志开启状态:mysql>set global slow_query_log=on;
1、mysqldumpslow
2. 分析慢查询日志中前3条命令:mysqldumpslow -t 3 /home/mysql/data/mysql-slow.log
一、开启慢查询日志
1.查询慢查询时间 默认10秒
SHOW VARIABLES LIKE "long_query_time"
2.查询慢查询日志文件地址
SHOW VARIABLES LIKE "%slow%"
3.如果没有开启慢查询日志则,在 my.ini 的 [mysqld] 下面配置项,然后重启mysqld服务即可。
小于等于5.5版本的mysql的设置方式
#慢查询日志文件地址 log-slow-queries = "E:/phpStudy/MySQL/long_query_logs/buexplain-slow.log" #慢查询时间(单位是秒),大于该时间的sql都将记录到慢查询日志文件。 long_query_time=0.5
大于等于5.6版本的mysql的设置方式
#开启慢查询 1或on表示开启,0或off表示关闭 slow_query_log=on #慢查询日志文件地址 slow_query_log_file="E:/phpStudy/MySQL/long_query_logs/buexplain-slow.log" #慢查询时间(单位是秒),大于该时间的sql都将记录到慢查询日志文件。 long_query_time=0.5
4.测试慢查询
SELECT sleep( 1 )
5.查看慢查询次数
SHOW GLOBAL STATUS LIKE '%slow%'
二、慢查询日志分析
# Time: 151001 19:06:58 # User@Host: root[root] @ localhost [127.0.0.1] # Query_time: 1.000057 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1443697618; select sleep(1);
第一行:执行时间
第二行:执行用户
第三行(重要):
Query_time SQL执行的时间,越长则越慢
Lock_time 在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间
Rows_sent 查询返回的行数
Rows_examined 查询检查的行数
第四行:执行的sql
分析处理日志的工具有:
1.mysqldumpslow 官方提供的perl脚本
2.mysqlsla 是 hackmysql.com 推出的一款日志分析工具
3.pt-query-digest 一个perl脚本
相关链接:
http://www.zrwm.com/?p=2668
http://blog.csdn.net/a600423444/article/details/6854289
三、总结
不要开启 log-queries-not-using-indexes 没有索引查询记录功能,它影响主要的慢查询日志的查看。
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
我的淘宝店,可以进去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop