[MySQL]-多表联查下的sql优化

 

一、场景

根据加分类型和时间段对加分记录进行汇总

Sql语句

二、漫长等待

 

 

Detail表走的全表扫描---减少detail表数据-先在detail表将符合条件的记录筛选出来,即远程表的查询置后

最开始detail表的create_time字段没有加索引---给create_time 字段添加索引

时间字段有索引,但是没有命中-强制走时间索引

 

三、优化思路

  1. 把tc_xxxx远程表的查询置后
  2. 时间字段加索引
  3. 强制走时间字段的索引

 

四、优化

优化后的解析

优化前的解析

不强制走时间索引的情况下,现在是命中id索引,

但是并不是任何情况下都不能命中时间索引,

当时间段较短时,还是可以命中时间索引的

虽然建立了索引,但是到底走哪个索引,数据库是会自己预测的,但是有可能预测错误,

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值