【mysql】大型互联网项目为什么考虑禁止使用外键

打印 上一主题 下一主题

主题 764|帖子 764|积分 2292

1. 阐明



  • 1.大型互联网项目禁止使用外键主要是出于性能、并发处理惩罚、数据一致性的机动控制以及数据迁移的便利性等方面的考虑。
  • 2.这并不意味着外键在所有情况下都是不可取的。在某些小型项目或对数据一致性要求极高的场景下,外键仍然是一种有效的数据完备性保障机制。
  • 3.在具体项目中是否使用外键需要根据实际情况举行衡量和决议。
2. 性能问题



  • 1.在大型互联网项目中,数据库的性能往往是关键。
  • 2.外键束缚在数据插入、更新和删除时会引入额外的数据一致性校验查询,这会增加数据库的负载,并大概导致性能降落。
  • 3.特别是在高并发环境下,外键束缚大概引发更多的锁竞争和死锁情况,从而影响系统的稳定性和吞吐量。
3. 并发处理惩罚问题



  • 1.外键束缚在并发环境中大概导致阻塞和系统崩溃。例如,当多个并发事务实验同时修改相干联的数据表时,外键束缚大概会引发锁等待和死锁。
  • 2.在高并发场景下,这种阻塞和死锁情况会严重影响系统的相应时间和用户体验。
4. 数据一致性的机动控制



  • 1.大型互联网项目往往需要在应用层面实现更复杂的数据一致性和业务逻辑。
  • 2.禁用外键可以将数据一致性的控制放在应用层面,通过事务管理、消息队列等机制来实现更机动的数据一致性控制。
  • 3.这样可以在保证数据一致性的同时,进步系统的可扩展性和可维护性。
5. 数据迁移的便利性



  • 1.在大型项目中,随着业务的发展和数据量的增长,数据迁移和扩容是常见的需求。
  • 2.外键束缚会导致数据表之间产生精密的耦合关系,这会增加数据迁移的难度和复杂性。
  • 3.禁用外键可以使得数据迁移更加机动和便利,减少因数据表之间的耦合关系而带来的迁移困难。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表