【问题标题】:Index on every Foreign Key?每个外键的索引?
【发布时间】:2011-02-14 13:00:54
【问题描述】:

是否每个外键上的索引都会优化查询??

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    通常,在外键上放置索引是一种很好的做法。这是通过 b/c 完成的,当将 FK 表链接到包含键定义的表时,它有助于提高连接性能。

    这不会神奇地优化您的整个查询,但肯定有助于提高 FK 与其对应的主键部分之间的连接性能。

    【讨论】:

      【解决方案2】:

      在每个外键上添加索引可能被视为一种好习惯,但是应该警告您,如果您有一个大型数据库,您拥有的索引越多,您的系统就会变得越重。添加索引时总是需要额外的维护和系统资源成本。

      我个人只会在需要优化的查询中使用的外键上添加索引。通过偶尔运行分析器来监控您的系统,确保您的索引保持最新。

      【讨论】:

        【解决方案3】:

        我对此进行了一些测试,但没有发现任何性能增强,但 SQLMenace 会告诉你其他情况。我的意见是尝试一下,看看它是否适合你。

        【讨论】:

        • 你到底在测试什么?如果它位于嵌套循环连接的内侧或合并连接的任一侧,它显然会有所作为。
        猜你喜欢
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 2020-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-01
        • 2012-02-13
        相关资源
        最近更新 更多