MySQL 为什么在实际开发中一般不使用外键约束

阿里开发手册:【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

1.外键优点:

  • 保证数据的完整性和一致性

  • 级联操作方便

  • 将数据完整性判断托付给了数据库完成,减少了程序的代码量

2.外键缺点:

  • 业务数据生成顺序,未必一定可以先生成外键的值,再生成明细数据

  • 有外键约束,修数据比较麻烦

  • 外键影响数据库性能,当任务多资源少时,产生锁死,产生并发高,每次修改数据都需要去另外一个表检查数据,需要获取额外的锁

  • 多库情况下,外键不生效

3.弊远远大于利,一般不使用

你可能感兴趣的:(sql,数据库,mysql)