我遇到过与FK和web应用程序相关的讨论。基本上,有些人说FK在web应用程序中并不代表真正的改进,在某些情况下甚至可以使应用程序变慢。
你们觉得呢,你们有什么经验?
编辑:请注意,我知道FK的工作和目标,我只是不确定它们是否会对youtube之类的web应用程序的性能产生显著的负面影响。
--
这句话来自Heikki Tuuri,InnoDB引擎的创建者,Innobase的创始人和首席执行官:
InnoDB在更新行时立即检查外键,不执行批处理或检查延迟到事务提交外键通常是严重的性能开销,但有助于保持数据一致性 外键增加行级锁定的数量,除了直接更新的表外,还可以将其扩展到许多表中。
发布于 2010-06-02 14:08:54
外键都是关于完整性和功能的,而不是性能。如果希望在两组列之间强制执行引用完整性,那么外键通常是最有效和最有效的方法。如果您不需要支持这样的完整性约束,那么显然性能问题也不会出现。
外键可能通过支持某些类型的查询重写来提高性能,否则这是不可能的。然而,这主要是附带的好处--这是确保强制执行的副作用。
https://stackoverflow.com/questions/2957174
复制相似问题