一尘不染

为什么要在MySQL中使用外键约束?

mysql

我在想,

我确定可以控制添加的类型,因此在MySQL中使用约束作为外键的动机是什么?

它会提高性能吗?


阅读 387

收藏
2020-05-17

共1个答案

一尘不染

外键强制执行参照完整性。这些约束保证了表中order_details具有order_id引用表的字段的orders行将永远不会具有表order_id中不存在的值orders

外键不需要具有有效的关系数据库(实际上MySQL的默认存储引擎不支持FK),但是对于避免断开关系和孤立行(即参照完整性),它们绝对是必不可少的。是必需的在数据库级别实施参照完整性的能力
ÇACID站。

至于您对性能的关注,通常会有性能成本,但是可能会忽略不计。我建议您输入所有外键约束,如果您遇到无法解决的实际性能问题,请仅在没有它们的情况下进行试验。

2020-05-17