暂无图片
mysql多表join为什么会选错驱动表
我来答
分享
czxin788
2023-11-10
mysql多表join为什么会选错驱动表

这是我在mysql 官网上的提问,但是没有解决问题。

https://bugs.mysql.com/bug.php?id=113035&thanks=4

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
张sir

我理解这个跟filtered机制有关系,你可以看下我这个文章,如果你建立一个(DataDate,EnterpriseID,PigFarmID) 应该可以正常选到了m0作为驱动表,或者收集表的直方图。

https://www.modb.pro/db/565859

暂无图片 评论
暂无图片 有用 0
机要员

在MySQL中使用多表JOIN时,选择驱动表(也称为连接表)是非常重要的。驱动表是用于发起连接的表,它决定了连接的顺序和方式。如果选择错误的驱动表,可能会导致查询结果不正确或者性能问题。

选择错误的驱动表通常是由于以下原因引起的:

  1. 不确定连接顺序:在多表JOIN中,连接的顺序很重要。如果连接顺序不正确,可能会导致查询结果不正确。因此,在选择驱动表时,需要确定正确的连接顺序。
  2. 连接条件不准确:多表JOIN是根据连接条件来将表中的行匹配起来的。如果选择的连接条件不准确,可能会导致查询结果不正确。因此,在选择驱动表时,需要仔细考虑连接条件是否准确。
  3. 驱动表选择不当:有时候,不同的表可能有不同的连接条件和关系。如果选择了一个不适合作为驱动表的表,可能会导致查询结果不正确或者性能问题。因此,在选择驱动表时,需要考虑表的特性和连接条件,选择最适合作为驱动表的表。
  4. 忽略连接条件:有时候,在多表JOIN中会忽略一些连接条件,导致查询结果不正确。例如,在连接两个表时,只考虑了一个共同的列,而忽略了其他连接条件。因此,在选择驱动表时,需要仔细考虑所有的连接条件,并确保它们都被正确地考虑进去。

为了避免选择错误的驱动表,可以采取以下措施:

  1. 确定正确的连接顺序:在多表JOIN中,确定正确的连接顺序是非常重要的。可以通过仔细分析查询语句和表的之间的关系来确定连接顺序。
  2. 仔细考虑连接条件:在选择驱动表时,需要仔细考虑连接条件是否准确。可以通过检查连接条件的可行性和正确性来确定合适的驱动表。
  3. 选择适合的驱动表:在选择驱动表时,需要考虑表的特性和连接条件,选择最适合作为驱动表的表。可以通过分析表的索引、数据量和关系来选择合适的驱动表。
  4. 考虑查询性能:在选择驱动表时,需要考虑查询的性能。可以通过评估不同查询方案的执行计划和性能来选择最优的查询方案。
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏