使用外键的SQL表性能

时间:2012-11-29 11:15:16

标签: sql performance foreign-keys

我有一个网站需要对用户进行大量的主动搜索。我有一个User表,其中包含指向所有完整用户详细信息的链接,但这只是在查看您自己的帐户时才真正感兴趣。搜索其他用户时,您需要的信息非常有限,以便更快,更高效地进行搜索,每次更新用户详细信息时,代码都会将一个条目写入名为UserLight的单独表中 - 该表仅包含大约8列并且都是纯数据 - 即没有指向其他子表或集合对象的链接,只是字符串数据的速度。每个用户一次只能有一个UserLight条目,这是其帐户对其他用户的显示方式的摘要表示。

我的问题是性能问题,我是否将UserId作为User表的外键约束?因此,如果没有User中的相应行,则无法创建UserLight条目,并且当您删除User行时,它也会自动级联并删除UserLight条目。这是理想的,我希望如何拥有它,但我只是想知道在UserLight表上以这种FK约束是否以任何方式减慢了对此表的读取或写入操作的性能?如果确实如此,我很高兴放弃FK约束并拥有一个完全隔离的表,没有约束或外部引用其他对象以加快性能,并且只是手动管理内务处理,但如果FK约束根本不影响性能 - 我我宁愿保留它。

1 个答案:

答案 0 :(得分:1)

它不会妨碍您的性能,而是首选数据受限制,以避免插入/删除/更新异常。