执行查询操作的时候, tiflash的表每次都是全表扫描, 有办法避免全表扫描吗?
tiflash是列存数据库,理论上每个字段都是索引,全表扫就是索引全扫描
1 个赞
tiflash是列存,就是全表扫描,不会走索引的。如果想走索引,需要走tikv
1 个赞
使用hint指定tikv执行
tilash不是全表扫描,列存就是特定列全扫描
TiFlash列存并没有索引的概念,就是全表扫描。
sql优化可以参考下大佬的例子
1 个赞
TiFlash的跳跃索引还没有出来吧
1 个赞
应该是 tiflash 进行的列全扫描,tikv是全表扫描
1 个赞
还是你见多识广,我还以为列存就不用索引呢。
翻了一下github,这个minmax-index可能是目前tiflash用到的唯一的索引了。不过看意思应该是对整形和日期自动生效。不用特意去用。
TiFlash 的全表扫描可能和你理解的不一样,行存的全表扫描是读取全部行的全部列,列存的是读取全部行的某些列,所以在AP场景列存的效率会非常高
关于列式存储的各种优化手段 参考战斗民族的ClickHouse 真的是简单粗暴大力出奇迹 但好用
1 个赞
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。