【问题标题】:Create an index on columns在列上创建索引
【发布时间】:2011-07-01 19:14:38
【问题描述】:

我们有一些表,其中我们没有给出任何外键约束。因此,如果我们在不提供外键约束的情况下对这些列进行索引,是否存在任何性能问题?

【问题讨论】:

  • 性能问题?否。数据完整性问题?是的。
  • 标题和问题不匹配。标题:外键索引,问题:在不提供外键的情况下对这些列进行索引请更新您的问题。
  • 您不应该担心性能 - 您应该担心参照完整性! 为什么在地球上没有外键约束?!?!?在开始担心性能之前,首先修复该问题....

标签: sql indexing foreign-keys


【解决方案1】:

只有在查询中使用索引列时,索引才会提高性能。因此,仅当您在查询中频繁使用该列时才索引该列。外键约束与要索引的列没有关系。

如果没有在你的数据库中作为外键的列上定义外键约束,那么你可能会面临@The scrum 已经提到的数据完整性问题。

【讨论】:

    【解决方案2】:

    取决于查询优化器。当优化器知道外键约束时,他们可以做出某些假设。曾经有一个与这些假设相关的bug in SQL Server's optimizer

    但查询性能并不是真正的问题。数据完整性是真正的问题。

    快速得到错误答案真的很重要吗?

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 1970-01-01
      • 2011-04-13
      • 2018-10-01
      • 1970-01-01
      • 2013-10-24
      • 2021-12-26
      • 2020-05-04
      • 2015-04-04
      相关资源
      最近更新 更多