gpt4 book ai didi

带有 OR 优化的 mysql 查询

转载 作者:行者123 更新时间:2023-11-29 09:09:46 24 4
gpt4 key购买 nike

下面的查询可以优化吗?可以创建哪些索引?

SELECT column_a 
FROM Table_b
JOIN Table_a
WHERE Table_B.ID_b = Table_A.ID_a
OR Table_B.ID_b = Table_A.ID_b;

最佳答案

您的查询实际上应该是:

SELECT column_a 
FROM Table_b
JOIN Table_a ON Table_B.ID_b IN (Table_A.ID_a, Table_A.ID_b)

如果您没有为 JOIN 提供 ON 标准,MySQL 会将其视为CROSS JOIN——结果是笛卡尔积(这很糟糕,除非这确实是您想要的)。如果我知道 column_a 来自哪个表,我可能会建议采用不同的查询方法...

索引以下内容:

  • 表_B.ID_b
  • 表_A.ID_a
  • 表_A.ID_b

TABLE_A 中的两列可以是覆盖索引,而不是单独的索引。

关于带有 OR 优化的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com