3

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

如果您一般回答或者您考虑特定的数据库解决方案(MySQL、PostgresQL、Oracle 等),请务必提及。

4

1 回答 1

4

外键本身就是关于数据一致性的——仅此而已。

当然,插入和更新对性能有影响,因为需要检查值,但是这对性能的影响是由其他因素决定的。

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

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

于 2012-06-30T09:36:03.860 回答