考虑以下情况:
ParrentLookupTable:
MyTable的:
这是FK定义
ALTER TABLE MyTable CONSTRAINT FK_MyTable_ParrentLookupTable_SomeCode FOREIGN KEY(SomeCode)
REFERENCES ParrentLookupTable (SomeCode)
我应该创建索引IX_MyTable_SomeCode吗?
在这种写密集型工作负载场景中,索引会花费IO,我不确定它是如何变得有用的?
答案 0 :(得分:1)
通常在父表中的列上添加索引是为了加快FK检查。在这种情况下,它可能根本没有帮助。 ParentLookupTable将适合一个数据库页面,因此如果它正在进行表扫描或索引搜索,它应该没那么重要。
在子表上的FK列上添加索引可能有助于级联删除。
这是一篇关于这个主题的文章 http://sqlperformance.com/2012/11/t-sql-queries/benefits-indexing-foreign-keys