为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
[TiDB 版本] tidb 4.0.8/tidb 5.0.0
[问题描述]
我想用hint方式指定某些情况走tiflash,但不想使用智能选择,请问有办法实现吗?主要原因是操作下来有时会选错,导至故障
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
[TiDB 版本] tidb 4.0.8/tidb 5.0.0
[问题描述]
我想用hint方式指定某些情况走tiflash,但不想使用智能选择,请问有办法实现吗?主要原因是操作下来有时会选错,导至故障
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
我们现在采用这种方式强制走TiFlash,不知道和你那边是不是一个情况
SELECT /*+ read_from_storage(tiflash[tb]) */ c_id from tb_user tb
我是想默认走tikv,除非我手工指定了走tiflash,它才走tiflash,否则都走tikv,就是默认走tikv,它不管什么情况都不能走tiflash
我这边测试是,启用TiFlash后,在不修改原语句的情况下,如果没有命中索引就会走TiFlash,命中索引就会走tikv。我这边基本都会命中索引,所以手工强制走TiFlash。
对于创建了 TiFlash 副本的表,TiDB 优化器会自动根据代价估算选择是否使用 TiFlash 副本 --我希望配置了tiflash副本的表也是默认走tikv,有需要走tiflash我再手工写hint
配置了tiflash副本的表也是默认走tikv,有需要走tiflash我再手工写hint -> 这种方式跟使用 tiflash 的初衷刚好不一样,能否考虑走 KV 的时候使用 hint 来指定?比如:select /*+ read_from_storage(tikv[t]) / count() from t;
可以关闭,参考这个 https://docs.pingcap.com/tidb/stable/use-tiflash#engine-isolation
这样可以对一个 tidb 实例或者 session 配置是否启用自动选择。