tidb v5.4.3 查询不走索引

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.3
【复现路径】
【遇到的问题】
数据读取不走索引,只有指定 force/use index 时才会走索引,可复现.


image

表数据量是多少?
where content_id 有多少数据量?
看执行计划,估了,一百多亿数据啊。

执行explain analyze看看呢?explain可能不一定准确。另外看看这个表的表健康度是多少?

content_id过滤条件有点差但也不至于全表扫吧,100多亿的表content_id过滤出1千万。。。

关注该问题

持续关注 百亿数据的查询

可以通过EXPLAIN FORMAT=‘verbose’ 在接SQL看一下该SQL的代价

1 个赞

的确挺奇怪的,加hint试试。

像是因为回表导致的。
可以SELECT一个索引字段看一下是否走索引。

TiDB回表代价确实比较大,但是不知道具体该如何计算比例是如何的

素引的数据分布是否合理,如果数据分布不合理,数据库衡量代价太多的话,估计就走全盘扫描了

看看这种等值查询是不是count-min-sketch引起的,不是的话可以绑定执行计划来解决。

可以加hint,试试强制走索引。