tidb查询数据量比例是多少走全表扫描,不走索引

:+1: :+1: :+1:

1 个赞

要看优化器的最后计算结果吧

走全表扫描还是走索引并没有确定的比例,如果说有比例也是根据cost值算完之后,倒退的一个结果。猫兄总结的比较到位,就是优化器根据走索引算出来一个cost值,然后根据全表扫算出来一个值,最后谁的小就用哪个,优化器不关心“数据量比例”,只关心cost值。

explain format=‘cost_trace’ 这个在哪个版本才有的?在V6.5.4版本执行是,直接就报:Unknown EXPALIN format name: ‘cost_trace’ 。

https://github.com/pingcap/tidb/blob/v7.1.0/types/explain_format.go#L39

好像是从7.1开始的。6.5确实没有这个参数。

https://github.com/pingcap/tidb/blob/v6.5.0/planner/core/plan_cost_ver2.go

从6.5版本计算cost的代码上看也确实没有关于输出的处理。

:+1: :+1: :+1: :+1:

好的,这个功能在慢SQL分析中还是蛮实用的

不过看着现在官方文档里还没有体现

1 个赞

是的,我觉得可以提个文档优化。

坐等源码大佬解释~+1

很显然,大佬已经给出来源码 :yum:

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。