MySQL外键介绍

外键满足数据完整性,也是表与表之间关系的桥梁。支持外键的存储引擎有InnoDB

外键的优点

  1. 保持两个相关表中的一致性数据
  2. 在相关数据的删除和更新中,维护起来要高效

外键的缺点

  1. 在修改数据时候,需要在另外一张表执行多一次查询操作
  2. 使得查询需要额外访问多一张表
  3. 写入操作需要对父表也进行加锁

建议

如果添加外键用作数值约束,可以使用触发器代替

当储存的数据量比较大的时候,避免设计外键

参考

《高性能MySQL》