文章目录
MySQL——慢查询日志分析
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10。
通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。
如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
long_query_time的默认值为10
mysql> SHOW VARIABLES LIKE 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
1、启动和设置慢查询日志
查看是否开启慢查询日志功能
-
slow_query_log:慢查询开启状态
-
slow_query_log_file:慢查询日志存放的位置(一般设置为 MySQL 的数据存放目录)
mysql> SHOW VARIABLES LIKE ‘slow_query%’;
±--------------------±---------------------------+
| Variable_name | Value |
±--------------------±---------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /data/mysql/CHENG-slow.log |
±--------------------±---------------------------+
2 rows in set (0.00 sec)
开启慢查询日志功能
方式一:配置文件开启(永久有效)
将 log_slow_queries 选项和 long_query_time 选项加入到配置文件的 [mysqld] 组中。格式如下:
[mysqld]
show_query_log=on/off # 开启或关闭
log-slow-queries=dir/filename
long_query_time=n
log_output=file
其中:
- dir 参数指定慢查询日志的存储路径,如果不指定存储路径,慢查询日志将默认存储到 MySQL 数据库的数据文件夹下。
- filename 参数指定日志的文件名,生成日志文件的完整名称为 filename-slow.log。 如果不指定文件名,默认文件名为 hostname-slow.log,hostname 是 MySQL 服务器的主机名。
- “n”参数是设定的时间值,该值的单位是秒。如果不设置 long_query_time 选项,默认时间为 10 秒。
方式二:命令开启慢查询日志
SET GLOBAL slow_query_log=on/off; -- 开启或关闭
-- 全局和当前session都要修改
SET GLOBAL long_query_time=1;
SET long_query_time=1;
2、数据准备
1、建表