MySQL大表深度优化实战策略
背景
XX实例(一主一从)xxx告警中每天凌晨在报SLA报警,大度优该报警的表深意思是存在一定的主从延迟(若在此时发生主从切换,需要长时间才可以完成切换,化实要追延迟来保证主从数据的战策一致性)。
XX实例的大度优慢查询数量最多(执行时间超过1s的sql会被记录),XX应用那方每天晚上在做删除一个月前数据的表深任务。

分析
使用pt-query-digest工具分析最近一周的免费信息发布网化实mysql-slow.log。
复制pt-query-digest --since=148h mysql-slow.log | less1.结果第一部分
最近一个星期内,战策总共记录的大度优慢查询执行花费时间为25403s,最大的表深慢sql执行时间为266s,平均每个慢sql执行时间5s,化实平均扫描的战策行数为1766万
结果第二部分
select arrival_record操作记录的慢查询数量最多有4万多次,平均响应时间为4s,大度优delete arrival_record记录了6次,表深平均响应时间258s。云南idc服务商化实
select xxx_record语句
select arrival_record 慢查询语句都类似于如下所示,where语句中的参数字段是一样的,传入的参数值不一样 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>=0\Gselect arrival_record 语句在mysql中最多扫描的行数为5600万、平均扫描的行数为172万,推断由于扫描的行数多导致的执行时间长
查看执行计划
复制explain 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>=0\G;站群服务器本文地址:http://www.bzve.cn/html/579e2799393.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。