MySQL——慢查询日志分析

文章目录

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、建表

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL慢查询激增时,可能会存在以下几个原因。首先,索引没有设计好可能是一个导致慢查询激增的原因。索引的设计不当可能导致查询的效率低下,从而使得慢查询的数量增加。其次,SQL语句的编写不当也可能是导致慢查询激增的原因。如果SQL语句没有充分利用索引或者存在不必要的关联等操作,都可能导致查询的效率下降。最后,MySQL选择错误的索引也可能导致慢查询激增。MySQL在执行查询时会尝试选择合适的索引,但有时候可能会选择错误的索引,从而导致查询变。 为了应对慢查询激增的情况,可以考虑进行以下配置。首先,建议打开MySQL慢查询日志功能,并将日志文件路径设置为指定的目录,如/home/mysql/mysql/log/slow.log。可以通过设置slow_query_log为ON和slow_query_log_file为指定路径来实现。此外,可以通过设置long_query_time的值来定义响应时间超过阀值的语句,如将long_query_time设置为1,表示运行时间超过1秒的语句将被记录到慢查询日志中。这样可以方便地监控慢查询的情况,以便进行进一步的优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQL学习笔记5——优化问题(短连接,慢查询,QPS激增)](https://blog.csdn.net/xystrive/article/details/125508577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL 慢查询的排查方法](https://blog.csdn.net/weixin_39838758/article/details/115886104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值