tidb索引扫描

image
官方课程说在智能选择中,索引扫描查数据适合走tikv,但百度ai说新版tidb中tikv和tiflash处理索引查询效率差不多,到底谁说的对,为什么?

准确的说是较少数据量的点查或者索引范围扫描更适合tikv, tiflash 中没有索引的概念,只能全表扫描。

1 个赞

别信百度ai的啊,如果是索引扫描少量数据,确实用tikv更加合适,如果是大量扫描数据的汇总类sql,走tiflash更加合适。

1 个赞

AI就会一本正经胡说八道 :joy_cat:

多列的计算类ap查询tflash有优势,点查等tp的tikv有优势

这是对的

百度你也信啊,只能当辅助工具吧。

百度ai 在一本正经的胡说八道,看看就行了。

“索引扫描查数据适合走tikv” 这句话的理解我举个例子你就比较清楚了,比如有一张表有1亿行,每个用户id(有索引)有一个值money。当有下面的计算时:

1.点查或者较小范围的索引过滤,走TiKV,。
select sum(money) from t where id =1 ;
select sum(money) from t where id >1 and id< 10 ;

2.超过一半以上的索引过滤或者全表扫描,走TiFlash。
select sum(money) from t where id >1 and id< 90000000 ;
select sum(money) from t ;

智能选择的处理过程大概是这么思路,优化器会根据统计信息来执行优化。

2 个赞

不管什么DB,索引设计真的很关键。

百度ai东西千万别当真

正解,一般而言如果超过一半的索引过滤或者全表扫描,如果该表建了TiFlash副本,优化器大概率是选择走TiFlash的全表扫描,而不是TiKV的索引过滤,也不是TiKV的全表扫描。