外键会自动创建索引吗?

有人告诉我,如果我对两个表进行外键调用,则该SQL Server将在子表中创建类似于索引的内容。我很难相信这是真的,但是在这方面找不到很多相关的东西。

我问这个的真正原因是因为我们在一个可能包含15个相关表的表的delete语句中,响应时间很慢。我问过我们的数据库专家,他说如果字段上有外键,那么它就像一个索引。您对此有何经验?我应该在所有外键字段上添加索引还是仅仅是不必要的开销?


繁星coding
浏览 2290回答 3
3回答

三国纷争

外键是一个约束,是两个表之间的关系-与索引本身无关。但是众所周知的事实是,索引属于任何外键关系的所有列是很有意义的,因为通过FK关系,您通常需要查找相关表并根据以下内容提取某些行:一个值或一个值范围。因此,对FK中涉及的任何列建立索引是很有意义的,但是FK本身并不是索引。

万千封印

不,外键字段上没有隐式索引,否则Microsoft为什么会说“在外键上创建索引通常很有用”。您的同事可能会将参照表中的外键字段与参照表中的主键相混淆-主键确实会创建隐式索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server