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). 查询相关参数配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)修改配置

1
2
3
4
5
6
7
8
-- 开启慢查询
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)中添加:

1
2
3
slow_query_log = on
slow_query_log_file = /路径
long_query_time = 0.5

2、测试

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

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

3、备注

慢查询sql排查思路:

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

  

  

  

 

  

posted @   橘子偏爱橙子  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2023-02-12 【jmeter性能项目实战-06】轻商城项目-构造测试数据
点击右上角即可分享
微信分享提示