mysql排查指南_【mysql】mysql调优时必须掌握的慢查询语句排查命令

文章目录

前言:

开启并设置慢查询语句的时间

1. 查看是否开启慢查询语句

2. 开启慢查询

3. 修改满查询定义的时间

4. 开启 记录没有使用索引的查询

5. 查询有多少慢查询记录

分析工具

前言:

mysql慢查询日志用来记录mysql在相应时间内超过阈值的语句。 阈值定义在long_query_time里。

mysql> show variables like '%long_query_time%';

+-----------------+-----------+

| Variable_name | Value |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

1234567

从上面的查询出来的结果可以看到,long_query_time的默认值为10,意思是运行10S以上的语句定义为慢查询语句。当然这个数字你可以进行修改,今天我们就来聊聊在做mysql调优时,必会的那些慢查询语句。

开启并设置慢查询语句的时间

1. 查看是否开启慢查询语句

bb09636cefaf

image

2. 开启慢查询

mysql> set global slow_query_log=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%slow_query_log%';

+---------------------+---------------------------------+

| Variable_name | Value |

+---------------------+---------------------------------+

| slow_query_log | ON |

| slow_query_log_file | /var/run/mysqld/mysqld-slow.log |

+---------------------+---------------------------------+

2 rows in set (0.00 sec)

zmgaosh 致码高胜寒

1234567891011121314

3. 修改满查询定义的时间

方法一: 在数据库里设置

mysql> set global long_query_time=4;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%long_query_time%';

+-----------------+----------+

| Variable_name | Value |

+-----------------+----------+

| long_query_time | 4.000000 |

+-----------------+----------+

1 row in set (0.00 sec)

致码高胜寒提示: 这里设置完有时候不生效,需要退出并重新连接数据库即可。

zmgaosh

123456789101112

方法二: 在配置文件里设置

在[my.ini]中添加如下信息:

[mysqld]

log-slow-queries=" /var/run/mysqld/mysqld-slow.log" ## mysql慢查询日志目录

long_query_time = 4 ## 最长执行时间(超过这个时间就背记录到慢查询日志里)

log-queries-not-using-indexes ## 没有使用索引的查询也被记录在日志里

123456789

4. 开启 记录没有使用索引的查询

bb09636cefaf

image

设置开启:

mysql> set global log_queries_not_using_indexes=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'log_queries_not_using_indexes';

+-------------------------------+-------+

| Variable_name | Value |

+-------------------------------+-------+

| log_queries_not_using_indexes | ON |

+-------------------------------+-------+

1 row in set (0.00 sec)

zmgaosh

1234567891011

5. 查询有多少慢查询记录

mysql> show global status like '%Slow-queries%';

Empty set (0.00 sec)

12

分析工具

mysqldumpslow

show processlist

explain

使用zabbix监控获取数据的IO,cpu,连接数信息(准确度不高)

在这里前三个工具经常使用,最后一个用的比较少,因为可靠度不够。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值