为什么不应该使用数据库外键重温旧文

导读:最近一篇是否应该使用数据库外键的旧文在国外技术网站HackerNews上引发了热议。文章的作者是一名GitHub工程师提出,观点是不应该使用数据库外键。反方的主要观点是互联网开发的经验未必适合企业开发……你的观点如何?欢迎留言。GitHub工程师的原文如下。

在GitHub,我们从未在任何地方使用外键。

就个人而言,我花了好几年的时间才深入理解外键FK(ForeignKey)的优劣,在过去的三年中,我一直坚决认为不应使用外键FK。主要原因是:

你实际是用FK来拆分数据库,你的应用程序习惯于依靠FK来保持完整性,而不是自己代码来完成。它甚至可能依赖于FK来级联删除(发抖)。最终你想来自己来实现数据拆分或者提取时,就需要在不确定的范围内更改和测试该应用程序。

FK对性能有影响。他需要索引的开销可能还好,因为大部分情况都需要这些索引,但是为每个插入/删除进行的查找是一项额外开销。

FK执行在线schema迁移会有问题。

您可能会想到,这最后一颗子弹不是鸡和鸡蛋。FK在可能和不可能之间施加了很多限制。

下面链接有我的一篇旧文章,回顾了FacebookOSC首次出现时候的想法,其中包括数据库外键的一些想法:









































白癜风晚期能治愈吗
自癜风好的预兆



转载请注明:http://www.xcqg58.com/jyqj/jyqj/9731.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了