例如,如果我有一个BlogPosts表和一个PostCategory表,其中BlogPosts表具有FK字段PostCategoryId。关系会使得查询更快,还是更多的是数据质量?
BlogPosts
PostCategory
PostCategoryId
何时涉及联接表呢?PostCategoryId从BlogPosts表中取出该字段,并在它们之间有一个名为的表,该表PostsInCategories只有2个FK字段:BlogPostId和PostCategoryId,组合形成一个PK。
PostsInCategories
BlogPostId
关系可以改善那里的查询吗?
外键关系与 加强数据完整性有关 ,例如,确保您没有任何“ voodoo”子行,而这些子行不再具有父行,依此类推。
单独使用外键关系不会提高性能,因为SQL Server 不会 自动为外键创建任何索引。
出于多种原因(在增强引用完整性和提高JOIN性能时可提高性能-请参见Kimberly Tripp的主题中的博客文章),强烈建议您将索引添加到表中的所有外键字段中,并且添加这些索引将加快速度。使用那些FK关系的查询。