gpt4 book ai didi

多个表上连接的 SQL 查询性能

转载 作者:行者123 更新时间:2023-12-04 05:34:20 26 4
gpt4 key购买 nike

当我们在一个查询中连接超过 2-3 个表时,如果我们在所有表中都有一个公共(public)列,那么我们在执行时会不会有什么不同?

  • 为所有表中的公共(public)列指定值。

    例如:
    select e.*
    from emp e, dept d
    where e.deptno = 10
    and d.deptno = 10;
  • 为其中一个公用列赋予值(value)并与另一列连接

    例如:
    select e.*
    from emp e, dept d
    where e.deptno = 10
    and d.deptno = e.deptno;

  • 问这个问题的原因是,我有一个查询(成本为 17),它在我指定示例 1 中的值时执行,但如果我加入示例 2 中的列,它会挂起并且永远不会执行。

    请帮助我理解这一点。

    最佳答案

    这取决于索引。如果您在两个表中的该列上都有索引,则应该没有区别。但如果没有,第二个可能会慢得多。

    deptno 是唯一的吗? (在任何一个表中。)如果是 make CERTAIN,您可以这样设置索引。

    关于多个表上连接的 SQL 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155058/

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