外键会影响性能/存储效率吗?

时间:2012-06-30 09:29:46

标签: database optimization foreign-keys query-optimization database-performance

外键是用于确保数据库一致性,还是它们还会影响性能(例如执行连接)和/或存储效率(例如,仅使用外部表索引等)?

如果您回答一般问题或者您是否考虑过特定​​的数据库解决方案(MySQL,PostgresQL,Oracle,...),请提及。

1 个答案:

答案 0 :(得分:4)

外键本身就是数据一致性 - 仅此而已。

当然,对插入和更新存在性能影响,因为需要检查值,但是这会影响性能如何受其他因素控制。

通常,您应该在主键和外键列上有索引 - 这是确保连接使用索引并且速度很快的最佳方法(并且索引确实会影响存储 - 它们需要存储在某处,之后全部)。

对于几乎所有现代RDBMS都是如此。