👨🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。
☠️每日毒鸡汤:一件事你犹豫去不去做,那就是该立即动身做的。
查看慢查询的状态
show variables like '%slow_query_log%';
复制代码
默认情况下 slow_query_name = OFF,表示慢查询日志是禁用的。
默认情况下会给一个缺省的文件host_name-slow.log,当我们指定路径之后就会覆盖这个默认的缺省文件路径
开启/关闭慢查询日志
// 开启
set global slow_query_log = 1;
// 关闭
set global slow_query_log = 0;
复制代码
slow_query_log = NO,此时代表慢查询日志开启。
以上这种配置方式只是临时生效,如果想要永久生效,就必须修改配置文件 my.cnf(其他系统变量也是如此)
修改my.cnf文件,在[mysqld]下增加或修改参数
slow_query_log = 1
slow_query_log_file = 慢查询日志文件存储地址
复制代码
查看等待时间阈值
show variables like '%long_query_time%'l
复制代码
这个是由参数long_query_time控制的,默认情况下long_query_time的值为10秒。
假设运行时间正好等于 long_query_time 的情况,并不会被记录下来。也就是说:在MySQL源码里是 判断大于 long_query_time,而非大于等于。
设置等待时间阈值
set global long_query_time = 3;
复制代码
show global variables like '%long_query_time%';
复制代码
show variables like 'profiling';
复制代码
当前版本的MySQL支持show profile 功能并且是关闭状态。
// 开启
set profiling = ON;
// 关闭
set profiling = OFF;
复制代码
以下运行的SQL都会在show profile 中进行记录。
// 第一个SQL
select * from whale_fall;
// 第二个SQL
select * from whale_fall;
// 第三个SQL
select sleep(4);
复制代码
show profiles;
复制代码
查询不同的性能参数
show profile cpu,block io for query 3;
复制代码
我们可以通过上述查询出来的状态分析此时SQL出现异常的原因
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。