如果我想使用外键,索引会变慢吗?

时间:2016-07-11 06:07:08

标签: sql sql-server database-design foreign-keys foreign-key-relationship

我想使用外来但我应该添加index.I听说索引插入速度慢,这是一个很大的问题,因为我需要添加外键的表的角色,有很多更新,插入,删除。我应该是使用foregn key?我不想放慢我的查询速度

2 个答案:

答案 0 :(得分:0)

让我解释一下SQL索引和引用的实际整体概念

  • 当我们寻找特定的页面/内容/主题时,索引与我们书中的正常索引相同,而不是逐一引用我们在索引中看到的页面,并找出它的地址。
  • 引用用于维护特定表或列之间的关系
  • 当您执行任何操作[不包括插入]时,SQL如何正常工作,他们首先会搜索这些数据。首先它将检查索引[如果可用]否则逐行搜索数据。
  • 所以,如果你有一个索引,你可以更快地完成所有操作[你必须在基础上对那些列进行索引,你正在执行大部分操作,如ID,..] - 如果是关系,您也可以在代码中维护[只有在深入了解数据库及其流程时才选择此选项]

Suggession 必须使用索引[仅在一个字段上]并且根据您的需要使用关系它将永远不会降低您的性能

答案 1 :(得分:0)

在以下情况下使用外键索引:

  • 即将删除父行
  • 父键(由外键引用)即将被修改。

(插入或更新父级的未引用字段时,,插入,更新或删除子级时也使用

当然,外键的“顶部”查询(尤其是JOIN)非常常见,而且也可能从这些索引中受益。

因此,根据经验,如果经常进行上述操作,请考虑在外键上使用索引。由于每个索引都需要maintenance,因此请衡量维护价格是否证明您在这些操作中获得的加速是合理的(根据经验,它通常会这样做)。