mysql慢查询测试

1、慢查询开启

1.1、开启慢查询目的

​ 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

2.2、设置慢查询

修改my.cnf配置文件,在[mysqld]下方加入:

slow_query_log = ON #慢查询开启
slow_query_log_file = /var/log/slow-query.log # 慢查询日志存放目录
long_query_time = 5 #查询查过5秒才记录

​ 如果是windows系统,配置文件名称为my.ini,linux系统my.cnf配置文件默认在/etc/my.cnf,也可以使用locate my.cnf查看所有my.cnf文件的存放目录。

[root@yizhan ~]# locate my.cnf
/etc/my.cnf
/etc/my.cnf.d

​ 配置完成后需要重启mysql服务 systemctrl restart mysqld

2.3、查看慢查询状态

登录mysql查看慢查询

#查看慢查询的开启状态和慢查询日志的存储路径
show variables like '%slow%';

#查看当前慢查询日志输出的格式,可以是FILE(存储在数数据库的数据文件中的hostname.log),也可以是TABLE(存储在数据库中的mysql.general_log)
show variables like '%log_output%';

#查看慢查询阈值,当查询时间多于设定的阈值时,记录日志
show variables like 'long%';

#插入一条数据,数据大于“long_query_time”(6秒)时(不包含6秒),会把日志保存到慢查询日志中
select sleep(6);

#查看慢查询的个数,根据个数是否新增来判断测试结果
show global status like '%Slow_queries%';

2.4、慢查询分析—mysqldumpslow

登录mysql后执行select sleep(6);,然后使用mysqldumpslow工具(MySQL客户端自带)对慢查询日志进行分类汇总。

# 查看前2条慢查询SQL语句
mysqldumpslow -s c -t 2 /var/log/slow-query.log
  • -s 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙
  • -t 返回前面多少条数据

输出结果:

[root@yizhan ~]# mysqldumpslow -s c -t 2 /var/log/slow-query.log

Reading mysql slow query log from /var/log/slow-query.log
Count: 3  Time=6.00s (18s)  Lock=0.00s (0s)  Rows=1.0 (3), root[root]@localhost
  select sleep(N)

Died at /usr/bin/mysqldumpslow line 167, <> chunk 3.
[root@yizhan ~]# 

Time表示慢查询SQL执行的事件,Lock表示锁,Rows表示有多少条慢查询SQL语句,select sleep(N)是具体的慢查询SQL语句。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值