Fork me on GitHub

【性能测试】Mysql之慢查询01

一、Mysql常用监控指标

慢查询SQL
慢查询:指执行速度低于设置的阀值的SQL语句
作用:帮助定位查询速度较慢的SQL语句,方便更好的优化数据库系统的性能

1、开启MySQL慢查询日志

参数说明:
slow_query_log: 慢查询日志开启状态[ON:开启,OFF:关闭]
slow_query_log_file: 慢查询日志存放位置
long_query_time: 慢查询时长设置(超过该时长才会被记录,单位:秒)
 
设置步骤:
1). 查询相关参数配置
mysql> show variables like 'slow_query%';
+---------------------+---------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /usr/local/mysql_data/mysql_slow.log |
+---------------------+---------------------------------------------------+
2 rows in set
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set1 row in set

 

2)修改配置

-- 开启慢查询
set global slow_query_log = 'on';

-- 设置日志存放的路径
set global slow_query_log_file = '日志存放的路径';

-- 超过0.5s
set @@long_query_time = 0.5;

 这个long_query_time就是sql执行时间超过它,算是慢查询。

上面的修改方式,mysql重启后会失效;要永久生效,在mysql安装目录下的my.cnf(windows中是my.ini)中添加:

slow_query_log = on
slow_query_log_file = /路径
long_query_time = 0.5

2、测试

select sleep(4);
执行后,查看慢查询日志 /usr/local/mysql_data/mysql_slow.log
linux下命令:
tail -20f /usr/local/mysql_data/mysql_slow.log

 select sleep(4);   语句就是存在慢查询的语句

3、备注

慢查询sql排查思路:

1.是否表数据量太大(考虑分库分表)
2.是否并发量过高
3.是否锁表
4.是否使用索引或索引没有生效
5.sql是否高效

  

  

  

 

  

posted @ 2024-02-12 20:40  橘子偏爱橙子  阅读(28)  评论(0编辑  收藏  举报