「中国统计网」MySQL性能测试 · 数据库调优攻略
- 点击上方“中国统计网”订阅我吧!-
本文插图
文末领取【拍拍贷数据集】
性能调优前提:无监控不调优 , 本篇文章先不谈监控 , 只谈调优 。 如果有对于mysql性能的监控感兴趣的可以在文末给小编留言 , 以后为大家分享 。
Mysql性能指标及问题分析和定位1.我们在监控图表中关注的性能指标大概有这么几个:CPU、内存、连接数、io读写时间、io操作时间、慢查询、系统平均负载以及memoryOver
2.介绍下Grafana模板中各性能指标的意思
本文插图
这个是Mysql数据库的连接数
本文插图
这个图标表示了慢查询
本文插图
上图就是Mysql数据库的缓存区 , 展示了最大缓存以及已使用缓存等数据
3. 性能分析
一般在产生Mysql瓶颈的时候往往伴随着的是CPU使用率急速上升 , 需要top看一下是哪个线程占据了大量的CPU资源 , 如果发现Mysql进程占用较高 , 那么基本可以判断是Mysql数据库出现了问题 。
接下来就是对问题具体的分析和定位 。
对于数据库的操作基本上就是大量的查询 , 会导致数据库出现性能问题 。 对有问题的场景使用Jmeter模拟场景进行并发 , 并观察Grafana的图表 。
Mysql的几个问题基本上就是:
- 缓存区较小 , 大量查询导致了缓存区溢出 , 使用io进行读写 , 众所周知 , io的读写速度远远比内存读写速度要慢得多 。
- SQL语句问题 , 导致mysql数据库出现瓶颈的查询语句类型很多 , 最后会给大家列举一些 。
(1)在负载测试中 , 通过Grafana图表观察Memory Over这个图表 , 如果发现占用基本占满所分配给Mysql数据库缓存区的内存 , 然后IO读写时间非常长 , 读写频率非常高 , 那基本上是可以判断是缓存区较小导致的问题 。 (这个问题已经很少出现了)
log_output=file,table#二选 1 或者 2 个都选slow_query_log=onslow_query_log_file = /tmp/mysql-slow.log long_query_time = 1#设置如何判断慢查询 , 这边设置超过1s就算慢查询#使用完记得关闭重启Mysql数据库 , 在Grafana图表中如果看到慢查询的时间超过1s时 , 基本判断为存在慢查询 。登入数据库运行命令
select*frommysql.slow_log;#查看慢查询表数据运行完这条命令后 , 可以查看到所有超过1s的查询语句 , 这个时候复制这条语句到查询输入框中 , 选中右键点击解释 。- type列 , 连接类型 。 一个好的sql语句至少要达到range级别 。 杜绝出现all级别
- key列 , 使用到的索引名 。 如果没有选择索引 , 值是NULL 。 可以采取强制索引方式
- key_len列 , 索引长度
- rows列 , 扫描行数 。 该值是个预估值
- extra列 , 详细说明 。 注意常见的不太友好的值有:Using filesort, Using temporary
推荐阅读
- 史笔如钢:中国教授提出2个疑点,或真有他人参与,BBC称兵马俑有希腊人手笔
- 『老谭世界百态』西方不说话了,中国战胜新冠投入了多少资金?专家说出一组数字
- 中国网科技@撤出液晶面板生产,三星将关闭两座工厂
- 「小飞猪的防务观察」蛟龙600需加快研制,西昌大火表明中国急缺灭火飞机
- 『强国兵器』中方协同美方开发AI工具,英国人:只有中国能做到,抗疫强力辅助
- #即科技#107国赞同票作废!,想“加入”联合国?中国使用一票否决
- 【台海网】美官员攻击中国成瘾!华春莹强势回应:这锅你甩不掉
- 「万域」晨光文具陈湖雄:造一支中国人自己的好笔
- 「晓卫双」泰国转身就卖给了美国?官方终于出面回应,中国捐的口罩刚落地
- 即科技■决定权掌握在中国手,?联合国五常将变六常?此国获美俄一致力挺
