SQL优化(二)-- 慢查询

2023-07-29,,

1.慢查询日志

MYSQL的慢查询日志是Mysql提供的一种日志记录方式,它主要是用来记录mysql执行语句过程中,响应时间超过阀值的语句,这个阀值可以通过long_query_time去指定,比如说如果我们将long_query_time指定为5,则意思执行耗时5秒以上的语句都会被我们的慢查询日志给记录下来.

2.慢查询日志的作用

通过使用慢查询日志,我们可以先捕获耗时的语句,然后再结合explain执行计划进行全面的分析,从而达到优化的目的

默认情况下,mysql数据库并没有开启慢查询日志,因为开启慢查询日志记录本身就需要消耗数据库服务器性能,需要我们手动来开启,如果不是专门做优化的话,不建议开启慢查询日志

3.开启慢查询

查看是否开启和如何开启慢查询日志

-- 查看
show variables like '%slow_query_log%';
--开启(注意:只是临时生效,数据库重启之后,失效)
set global slow_query_log=1;
--永久开启
-- 1.修改my.cnf文件,在[mysqld]下增加或修改参数
slow_query_log=1;
slow_query_log_file="文件路径/kaijun-slow.log"; (如果不指定这一行的话,系统默认会给一个默认文件名)
-- 2. 重启mysql服务器

设定慢查询日志的阀值

-- 查看当前阀值(默认是10s)
show global variables like 'long_query_time'; -- 设置阀值
long_query_time=秒数
-- 注意: 只有sql语句耗时大于long_query_time的语句才会被记录下来

调试语句

select sleep(秒数);

查看当前系统中慢查询出现的次数

show global status like '%Slow_queries%';

慢查询开启配置模版

slow_query_log=1
slow_query_log_file="文件路径/kaijun-slow.log"
long_query_time=秒数
log_output=file,table (日志输出到文件和mysql数据库中的slow_log表中)

SQL优化(二)-- 慢查询的相关教程结束。

《SQL优化(二)-- 慢查询.doc》

下载本文的Word格式文档,以方便收藏与打印。