tidb 的存储引擎tikv和tiflash ,如何选择使用哪个,有没有接入规范

tidb 5.0.3
数仓这边使用的,统计分析类的查询比较多,之前发现有些查询会走tikv,速度比较慢。 后来加上hint 之后,走的tiflash,比较快。后来研发这边对大的统计分析查询都统一加上Hint了。 后来发现有的针对范围查询 走索引的tikv引擎,会更快。 走 tiflash是扫的全表,tiflash没有索引数据,走不了索引。
现在需要一个接入规范,用来指导开发同学,什么样的查询分析SQL需要走tiflash,什么样的查询分析SQL走TIKV会更快。
因为tidb基于代价消耗的自动选择,貌似不太准。后来都统一加上了。结果又遇到这个问题。

比如下边这个:
Hint 走tiflash :2.58s

去掉Hint 走tikv的:0.01s

1 个赞

这个没有规范的,可以根据场景进行总结吧

1 个赞

TiDB 可以自动选择使用 TiFlash 列存或者 TiKV 行存。

可以根据自己业务的情况,从dashboard中sql分析总结出来,再反复验证才能成规范。

2 个赞

官网说智能选择的喔

1 个赞

觉得智能选择不准的话,可以上线前手动用hint测试下看哪种方式更快,再决定选择哪种。

1 个赞

可以评估一下,这个查询需要访问表中大约多少数据?如果很多的话就走tiFlash,如果估计访问的数据只有百分之几,十几,还能走索引的话,走TiKV可能会更快一点。

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