请问有什么命令,或者操作可以看到CBO的选择过程,基于那些数据做的选择。
为什么选择了tikv或者为什么选择了tiflash。
这个选择的过程和选择基于的数据是否可以有什么方式获取,或者打印出来。
CBO 就是代价选择,选择资源损耗最小的一种方案,一般是贪心算法
没有命令可以支持直接满足你的需求,,不过可以通过 explain SQL 来对执行计划进行解析,可以查阅相关的算子下推和决策结果
另外,抽样和数据统计的准确性也会影响这个决策结果,满足较高的准确度(健康度),执行计划会更准确。
然后,还有 hit 的方式,可以满足你对 SQL 强制 走 tikv 或者 tiflash 的要求,也可以通过 explain 进行解析;参考文档:
https://docs.pingcap.com/zh/tidb/stable/optimizer-hints
https://docs.pingcap.com/zh/tidb/stable/control-execution-plan#控制执行计划
https://docs.pingcap.com/zh/tidb/stable/use-tiflash#手工-hint
https://docs.pingcap.com/zh/tidb/stable/sql-faq#可以使用-hints-控制优化器行为吗
以上希望对你有所帮助!
手动指定就一定会走 tiflash 了,除非你采用默认策略让系统自动判断
这个通过 explain 就可以看到 结果了,或者你需要实际的结果,也可以采用 explain analyze 的方式
5.4.0版本。默认是tikv,tidb,tiflash。实测,手动hint使用tiflash,explain之后有几率出现走了tikv。
文档也说了,手动hint可以指定engine,但是最后还是cbo在指定engine范围内做选择。
没有类似10053 trace, 有个trace命令可以看执行过程
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。
