hint join时表名的指定

文档不清晰或不完整,请按照下方模板提交

  • 问题分类:内容太简略、描述不清有歧义、步骤不完整

  • 出现的页面:文档链接:https://docs.pingcap.com/zh/tidb/stable/optimizer-hints

  • 出现的问题:
    我们在使用/+ HASH_JOIN(m1,m2) / 的时候,如果m1和m2不在同一个库中,这时候就会出现如下报错,There are no matching table names for (m1, m2) in optimizer hint /+ HASH_JOIN(m1, m2),但其实我们的表名写的是正确的,使用如下写法可以使hash_join正常工作
    /
    + HASH_JOIN(db1.m1,db2.m2) */

所以希望文档上能把这一点写出来

需求已反馈,谢谢超超反馈,有进度再反馈给你~

1 个赞

这里的 hint 提到了,不过对于其他涉及多个 table 的 hint 应该也适用,可以优化下文档

:+1:,这里确实没注意到,感觉这个库名的这个注意放在最外层更好点,这里感觉像read_from_storage的一个特性,前面没有说明,给我的感觉像是只指定表名就可以了

1 个赞

其实我感觉应该兼容MySQL hint的同时设计一套tidb的hint语法,感觉mysql的hint太挫了,自由度太低。比如我让优化器指定索引扫描,并非一定要指定用那个索引,优化器提供个最佳索引扫描即可,比如join时候我可以在join的hint里直接指定一个算子中哪个是外表,first=true等关键字。

支持这想法,兼容mysql的同时发展一套自己的 更有效 易用的hint或其他控制执行计划方式,官方应该也是在做呢 之前提过一个帖子说把那些下推黑名单、distsql concurrency等 做成hint形式,官方反馈说是有安排计划, 现在已经有 LEADING NO_DECORRELATE 这些hint了

1 个赞

具体的 PR 可见:PR: https://github.com/pingcap/docs-cn/pull/12844

相关进度可以从链接里面查看·

1 个赞

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