Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
外键只是为了确保数据库的一致性,还是它们也会影响性能(例如执行连接)和/或存储效率(例如,仅使用外表索引等)?
如果您一般回答或者您考虑特定的数据库解决方案(MySQL、PostgresQL、Oracle 等),请务必提及。
外键本身就是关于数据一致性的——仅此而已。
当然,插入和更新对性能有影响,因为需要检查值,但是这对性能的影响是由其他因素决定的。
通常,您应该在主键列和外键列上有索引——这是确保连接使用索引并且速度快的最佳方法(并且索引确实会影响存储——毕竟它们需要存储在某个地方)。
几乎所有现代 RDBMS 都是如此。