一、连接数据库和grafana
准备:连接好数据库和启动grafana并导入mysql模板
大批量注册、登录、下单等,还有过节像618,双11和数据库交互非常庞大,都会存在数据库的某一张表里面,当用户在登录或者查询某一个界面时,量少的话体现不出来,量很大的时候一定会有卡的现象,
性能响应一般是2、5、8、10,当2s响应的时候还可以忍受,当5s响应的时候都可能会损失很多用户,
例如查询订单表,如下,一张表有10w条数据
二、查看grafana监控模板和打开慢查询开关及最大连接数
-
查看mysql connections看板(目前没有压测,数据都很低)
Max Connections:最大连接数 151(默认,后面可以更改)
Max Userd Connections:最大用户连接数
Connections:当前连接数
-
查看mysql slow queries看板(慢查询)
慢查询主要影响的索引(主键、外键、索引):
索引分类:主键索引、唯一索引、普通索引、全文索引、覆盖索引、组合索引
MySQL TableLocks 表锁
Table Locks Immediate:立即表锁
Table Locks Waited:等待表锁
- 打开慢查询开关(默认OFF),在navicat里面执行(临时配置):
bash
show variables like '%slow_query%';
查看慢查询默认设置多少s(默认是10s),超过了10s就会写到指定某个表里或文件里:
bash
show variables like '%long_query%';
- 打开后可以监控慢查询sql(多慢算慢,标准是1s以内算正常) --临时打开(以下两种方法)
bash
set global slow_query_log=ON;
set global long_query_time =1; #(或者等于1,等于0是关闭)
- 可以选file,table。如果选 table ,则慢记录会保存在mysql.slow_log表中
bash
select * from mysql.slow_log; # 查看慢查询表数据
- 查询数据库最大连接数
bash
show variables like '%max_connections%';
-
永久配置,mysql配置(一般在etc目录下面),编辑my.conf文件(放在最后)
log_output=table #将慢查询日志保存到表中
slow_query_log=1 #开启慢查询
long_query_time=1 #慢查询超时为1s
max_connections=512 #最大连接数
重启mysql服务:systemctl restart mysqld
再使用navicat执行sql查看,都改过来了
show variables like '%slow_query%'; # 查看慢查询是否开启
show variables like '%long_query%'; # 查看慢查询设置多少s
show variables like '%max_connections%'; # 查询数据库最大连接数
三、关注指标
关注指标:mysql连接数、慢查询、表锁