性能测试-mysql监控

发布于:2025-05-21 ⋅ 阅读:(17) ⋅ 点赞:(0)

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

开启mysql慢查询日志

参数说明:
slow_query_log:慢查询日志开启状态【on:开启,off:关闭】
slow_query_log_file:慢查询日志存放位置
long_query_time:慢查询时长设置(超过该时长才会被记录)

设置步骤:
1、查询相关参数配置

show variables like "slow_query%";

在这里插入图片描述

show variables like "long_query_time";

在这里插入图片描述
2、开启慢查询并配置
开启慢查询日志

set global slow_query_log='ON';
#设置慢查询日志存放位置
set global slow_query_log_file='/data/slow_query.log';
#设置慢查询时间标准,设置之后会在下次会话才生效
set global long_query_time=1

连接数

利用mysql的sql语句监控mysql的连接数

show variables like "%connections%";

max_connections:所有与数据库建立连接的最大数量
max_user_connections:每个用户与数据库建立连接的最大数量

数据库内的最大连接时间

show variables like "%time%";

connection_timeout:最大连接时长
long_query_time:慢查询时长设置(超过该时长才会被记录)

查看当前数据库连接数
方法一:show processlist
方法二:show status like “%Thread%”

threads_connected:当前连接的数量
threads_created:曾经连接的数量
threads_running:当前正在处理状态的连接

监控缓存命中率

用户使用数据库服务器操作的过程:
用户向连接器发送sql语句,连接器先去缓存查找信息,如果在缓存中查找到结果,就返回给连接器,连接器再返回给用户(这是常见的流程);
如果在缓存中没查询到结果,就会先去分析器,再去优化器,之后去执行器,去执行引擎,最后返回给用户。

缓存命中率:所有查询语句,命中缓存的请求数,占所有请求的比例

查看是否开启缓存命中率

#缓存的开关
show variables like "%query_cache_type%";
#缓存的大小
show variables liel "%query_cache_size%";

开启缓存设置
mysql的配置文件my.ini或者my.cnf中:
1、query_cache_size:设置为具体大小
2、增加一行:query_cache_type=1

查看缓存相关选项

show global status like "QCache%";

在这里插入图片描述

Qcache_hits:缓存命中次数
Qcache_inserts:插入缓存次数

缓存命中率计算方式:
查询缓存命中率≈(Qcache_hits-Qcache_inserts)/Qcache_hits*100%
缓存命中率一般不低于99%

缓存失效原因
1、新的查询语句
2、表被修改过(insert、update,delete)

mysql锁

目的:解决客户端并发访问冲突问题

查看死锁

show OPEN TABLES where in_use>0;
UNLOCK TABLES;//解锁

锁定表

LOCK TABLES XX(表名) READ;

监控数据库索引

目的就是加快检索表中数据,尽快找到符合限制条件的记录id的辅助数据结构

主键id、自带索引,所以根据主键的查询结果,查询速度比较快(主要采取二分法)
非主键,可以添加索引,加快程序的运行速度


网站公告

今日签到

点亮在社区的每一天
去签到