mysqlMySQL

MySQL慢日志

2017-03-10  本文已影响38人  编程界的小学生

定义

Paste_Image.png

小建议

Paste_Image.png

如何查看是否开启了慢日志
SHOW VARIABLES LIKE '%slow_query_log%';

Paste_Image.png

如何开启慢日志
SET GLOBAL slow_query_log = 1;
关闭是0
SHOW VARIABLES LIKE '%slow_query_log%';

Paste_Image.png

注意:开启慢日志也只是对本次服务有效,若重启mysql服务,将自动变成默认的关闭状态。那如何永久开启呢?(不推荐,毕竟浪费性能,只建议在测试的时候开启一天看下哪里的sql慢)

永久开启办法
修改配置文件my.cnf,[mysqld]下增加或修改参数
slow_query_log和slow_query_log_file后,然后重启MySQL服务器。也即将如下两行配置进my.cnf文件

slow_query_log=1
slow_query_log_file=C:\ProgramData\MySQL\MySQL Server 5.5\Data\OutOfMemoryError-slow.log

如何查看慢日志的时间?
SHOW VARIABLES LIKE 'long_query_time%';

Paste_Image.png
默认10秒,大于(不是大于等于,是大于)10s的就记录到慢日志log里。

如何设置慢日志的时间
SET GLOBAL long_query_time=3;
设置为3秒

注意:修改慢日志时间后,有两种方式可以查看是否修改成功

(一)
SHOW GLOBAL VARIABLES LIKE 'long_query_time%';
(二)新开一个mysql窗口运行如下:
SHOW VARIABLES LIKE 'long_query_time%';
因为没有GLOBAL,所以需要新开个窗口,好比刷新一下

Paste_Image.png

测试慢日志
由于目前没sql执行3秒以上,所以无法记录,可以用sleep方法进行测试
SELECT sleep(4); //睡上4秒
会发现在log位置生成了慢日志log文件,里面记录了time(sql运行时间)、哪条sql慢以及哪个数据库。

日志分析工具mysqldumpslow
Paste_Image.png Paste_Image.png

若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:


qrcode_for_gh_577b64e73701_258.jpg
上一篇下一篇

猜你喜欢

热点阅读