为了账号安全,请及时绑定邮箱和手机立即绑定

外键会自动创建索引吗?

外键会自动创建索引吗?

繁星coding 2019-11-05 16:17:16
有人告诉我,如果我对两个表进行外键调用,则该SQL Server将在子表中创建类似于索引的内容。我很难相信这是真的,但是在这方面找不到很多相关的东西。我问这个的真正原因是因为我们在一个可能包含15个相关表的表的delete语句中,响应时间很慢。我问过我们的数据库专家,他说如果字段上有外键,那么它就像一个索引。您对此有何经验?我应该在所有外键字段上添加索引还是仅仅是不必要的开销?
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

外键是一个约束,是两个表之间的关系-与索引本身无关。


但是众所周知的事实是,索引属于任何外键关系的所有列是很有意义的,因为通过FK关系,您通常需要查找相关表并根据以下内容提取某些行:一个值或一个值范围。


因此,对FK中涉及的任何列建立索引是很有意义的,但是FK本身并不是索引。



查看完整回答
反对 回复 2019-11-05
?
万千封印

TA贡献1891条经验 获得超3个赞

不,外键字段上没有隐式索引,否则Microsoft为什么会说“在外键上创建索引通常很有用”。您的同事可能会将参照表中的外键字段与参照表中的主键相混淆-主键确实会创建隐式索引。


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 2283 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信