人麻了!刚入职就遇到MySQL 亿级大表优化……

背景


想起以前刚入职一家公司,就遇到了MySQL 亿级大表优化这个事儿!

XX 实例(一主一从)xxx 告警中每天凌晨在报 SLA 报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性)


使用 pt-query-digest 工具分析一周的 mysql-slow.log:

pt-query-digest --since=148h mysql-slow.log | less

结果第一部分:


这一个星期内,总共记录的慢查询执行花费时间为 25403s,最大的慢 SQL 执行时间为 266s,平均每个慢 SQL 执行时间 5s,平均扫描的行数为 1766 万。

结果第二部分:

select arrival_record 操作记录的慢查询数量最多有 4 万多次,平均响应时间为 4s,delete arrival_record 记录了 6 次,平均响应时间 258s。

select count(*) from arrival_record where product_id=26 and receive_time between '2019-03-25 14:00:00' and '2019-03-25 15:00:00' and receive_spend_ms>=0G