app购彩网平台

app购彩网平台好评猫-专业服务器租用知识门户网站!易记域名:www.haopingmao.com

连接的比较:cdn加速服务器MongoDB与PostgreSQL

chen CDN服务器 2021-08-03 09:59:09 0

app购彩网平台  这是连续系列中比较cdn加速服务器MongoDB功能和Postgres功能的第二个系列。第一个职位涵盖“模式后来被认为是有害的。”

  

  在这篇博客文章中,我们回顾了cdn加速服务器MongoDB和Postgres中的连接功能。其结论是MongoDB联接非常脆弱(当情况发生变化时,必须对应用程序进行广泛的重新编码),而且与Postgres相比,MongoDB提供了非常糟糕的性能。我们从第2节开始,以cdn加速服务器MongoDB对联接的支持开始,然后在第3节中继续使用Postgres中的相应功能。在第4节中,我们将说明为什么MongoDB连接是脆弱的,最后在第5节中我们将考虑在这两个系统中的连接性能。

  在这篇博文中cdn加速服务器,我们将使用表1中使用关系模式的员工和部门的著名示例。在这里,员工有一个名字,一个年龄,一个薪水,并且在一个部门。反过来,各部门也有一个DNA ME、一个最低标准和一个预算。请注意,有一个部门(糖果)没有员工。

app购彩网平台  雇员名称年龄工资DNAME

  比尔3610000鞋

  萨姆2715000玩具

app购彩网平台  弗雷德2912000鞋

  部门DNAME地板预算

  鞋11200

  玩具21400

  糖果1900

  示例数据库表1

  稍后,管理层可能会决定,条例草案可以将时间分配给多个部门。在这种情况下,表1中的模式不再有效,必须将数据更改为表2中的数据。请注意,我们必须添加一个名为Works_in的表,其中包含贡献性_pct字段,以指示Bill在多个部门之间的时间分配。

  雇员名称年龄工资

  比尔3610000

  萨姆2715000

  弗雷德2912000

  部门DNAME地板预算

  鞋11200

  玩具21400

  糖果1900

  作品中名称DNAME奉献pct

  比尔玩具60

  比尔鞋40

  萨姆玩具100

  弗雷德鞋100

  修订后的示例数据库表2

app购彩网平台  加入MongoDB

app购彩网平台  在MongoDB中,表示关系的方法主要有两种,即“嵌入”和“推荐信”使用嵌入式方法,必须确定哪个文档是“外部”,哪个是“内部”。将受欢迎的文档作为外部文档是很自然的,我们可以选择员工担任该角色。

  {

  "_id": "1",

app购彩网平台  "ename": "Bill",

  "age": 36,

app购彩网平台  "salary": 10000,

  "department": {

  "dname": "Shoe",

  "floor": 1,

app购彩网平台  "budget": 1200

  }

  }

  换句话说,部门信息存储在每个员工文档中。基本上,这是一种“内联”表示。在文档应用程序中,这种表示可能有些道理,但在结构化数据中,它有两个主要缺点。

  首先,对部门中的每个员工重复部门信息。因为比尔和弗雷德都在鞋部,所以信息将被复制。当鞋类信息被更新时,例如预算被调整,所有副本都必须被找到并正确更新。如果忽略一个副本,则会产生不一致(损坏)的数据库。更糟糕的是,这种多记录更新操作要么是非原子的(默认情况下是MongoDB);要么是要求MongoDB的4.0+多文档事务,这些事务有几个限制,并且会引发表演热。在第一种情况下,可能会出现损坏的数据库;在第二种情况下,会出现性能较差的情况。这两种情况都是有问题的。

  第二,没有地方放糖果信息,因为这个部门现在没有员工。由于这两个限制,我们不会在这篇博客文章中考虑这种表示。

本文由好评猫(http://bzyz185.cn/cdn/2021-08-03/696.html)原创,转载请注明!

版权声明

本文作者来自互联网用户,不代表好评猫立场。
如果作者发布涉及版权问题请联系我们删除,谢谢!

下一篇:返回列表

网站分类