Mysql调优之慢sql抓取
原文链接:https://blog.csdn.net/qq_36118769/article/details/85336834
在生产中,经常遇到某条sql执行速度慢而影响整个系统的运行,如何找到这条影响系统的sql是解决问题的前提。
mysql在出厂时许多默认功能并未开启,这样是为了保证mysql的运行性能,像上述问题一样,我们可以开启 sql慢查询日志,从而抓取拖慢系统的某条sql。
1、查看慢日志查询开启状态
执行
show variables like '%slow_query_log%';
日志默认状态是关闭的, /var/lib/mysql/localhost-slow.log 是日志文件所在服务器的位置,日志的名字 以 主机-slow.log命名。
2、开启慢日志查询
set global slow_query_log =1;
现在可以查看为开启状态,但是这个状态只对本数据库本次有效,如重启便恢复关闭状态,若要长期开启,还需要修改配置文件。
3、查看慢sql阈值
执行
show variables like '%long_query_time%';
默认设置 10秒为慢sql,在生产中一般sql超过2~3秒就已经很慢了(可以根据自己需求设置此值)
发现修改后,值还为10秒。原因是需要重新连接或者开启一个新的会话才能看到修改的值。
执行
show global variables like '%long_query_time%';
可看到修改的值。
4、模拟查询慢sql
执行
select sleep(4);
5、查看日志
查看日志 如下:
从而得出执行慢的sql,进行优化。
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)