外键是用于确保数据库一致性,还是它们还会影响性能(例如执行连接)和/或存储效率(例如,仅使用外部表索引等)?
如果您回答一般问题或者您是否考虑过特定的数据库解决方案(MySQL,PostgresQL,Oracle,...),请提及。
答案 0 :(得分:4)
外键本身就是数据一致性 - 仅此而已。
当然,对插入和更新存在性能影响,因为需要检查值,但是这会影响性能如何受其他因素控制。
通常,您应该在主键和外键列上有索引 - 这是确保连接使用索引并且速度很快的最佳方法(并且索引确实会影响存储 - 它们需要存储在某处,之后全部)。
对于几乎所有现代RDBMS都是如此。