接上次博客:基础配置
多用户登录并退出jmx文件:百度网盘
提取码:0000
一、练习jmeter脚本检测mysql慢查询
-
随意找一个脚本(多用户登录并退出),并发数设置300、500后分别查看mysql监控平台
-
启动后查看,主要查看mysql连接情况
下图查看:Max Used Connections最大176,
分析查看:设置的最大连接数为512,实际最大只能连接176,其他的在等待连接或者在排队
-
查看Mysql Slow Queries慢查询,最大慢查询在7.28s,平均是0.38s
-
主机基础监控CPU、内存都在90%以上,可以先处理CPU,内存问题
-
观察聚合报告,压测300,500都没有异常率
-
通过表查看慢查询数据,只筛选2024-06-09 18:31:00之后的数据按降序排列
bash
select * from mysql.slow_log where start_time>'2024-06-09 18:31:00' order by start_time desc;
查询出有这么多条慢查询sql
start_time :开始时间
user_host:监控主机IP
query_time:花费的查询时长(按照设置的,超过1s的都会被筛选出来)
-
随意选择一个语句,选择后面的(BLOB 3.32)点击上面的文本(或备注),会在表格下面出现慢查询的sql语句
-
复制该语句,进行执行后可能会为空(不关注这里),注意要对应数据
-
点击上面的解释,显示如下
type=ALL:代表全表搜索,没有带任何索引
rows=906014:从90W条数据中查询,依次类推,把慢查询的语句给研发查看进行优化
type类型有哪些,和执行速度:CONST>EQ_REF>REF>RANEG>INDEX>ALL
ALL全表搜索:数据库查询里最慢的一种
开发优化后再次压测,如果再出现慢查询再次优化,直到满足需求为止!