SQL优化记录
测试环境慢SQL排查
9月30号,慢sql记录如下
10月10号进行优化后,处理方式是使用EXPLAIN查看执行计划,然后进行分析,加上BTree索引,同时保证能命中索引,小表驱动大表,慢sql记录如下
观察到当时数据库cpu占用接近100%,所以导致慢sql出现,
探究cpu占用高原因
-
当时数据库在进行备份
cpu在上午10.10-10.50出现高占用,而备份的时间是在下午4点,所有排除
-
数据库发生阻塞
当时正在对表索引进行更新,并且从日志上看,打印的sql涉及到了加索引的表,同时刚好在进行大批量写入。
10月12号
观测不到慢sql,也没发现cpu异常占用,后面对数据添加一定量的数据后继续观察,统计日后数据量较大的表,然后插入100万条数据,中等数据量的表插入10万条。
10月13号
没有观测到慢SQL,CPU占用也在正常范围内,进一步准备jmeter压测,预计QPS在200-300。
10月14号
使用aws的分布式压测平台,提交jmeter脚本进行压测,结果如下
数据库的CPU和服务器的CPU使用率都在正常范围内,小于30%,瓶颈在服务器带宽。
可以看到出网流量的峰值以及达到了服务器的上限,阿里云上可以根据并发的时间段动态设置服务器的带宽,以此来提高并发。
评论