表(SQL)和集合(Mongo)之间的区别



每种方法的优点是什么?

1)在SQL中,您必须创建一个表并定义数据类型;在mongoDB中,您不能创建集合,它会在插入数据时自动创建自己。

2) 在SQL中,必须根据数据类型插入值;在mongoDB中,您可以插入任何类型的值。

3) 在SQL中,不能在插入或更新时创建列;在mongoDB中,这是可能的。

4) 在SQL中,几乎没有什么是区分大小写的;在mongoDB中,所有内容都区分大小写。

EX在SQL中,使用"use[demo]"one_answers"use[demo]"会选择相同的数据库;在mongoDB中,使用"use demo"one_answers"use demo"将选择两个不同的数据库。

表(SQL)-RDBMS

  • 维护数据之间的关系
  • 固定或预定义架构数据存储在行和列中
  • DB支持外键关系
  • 如果我们违反任何列数据类型或外键或主键,数据将不会被存储
  • 联接可以有效地用于查询数据
  • 垂直可扩展(会受到硬件的限制,比如说你不能继续在服务器机器中添加RAM,这台机器有自己的可以增加的RAM数量的限制)存储和检索数据巨大时相对较慢

MongoDB集合-NoSQL数据库

  • 数据之间没有任何关系-动态模式
  • 数据存储为文档
  • 动态模式允许保存任何数据类型或任何数量参数的文档
  • 横向可扩展—只需添加更多服务器即可实现—存储和检索更快
  • 没有明确的外键支持,而我们可以通过使用外键来设计模式(但请记住,我们需要维护关系)
  • $lookup执行类似于SQL中LEFT OUTER JOIN的操作

希望它有帮助!!

在检查差异之前,您应该首先为自己确定需要存储什么样的数据,以及您的数据在多大程度上具有结构。基于表的数据库非常适合用于结构良好的信息。非SQL数据库(如MongoDB)最适合异构数据(因此它们谈论文档)。

所以,你的问题的答案是另一个问题:你的数据看起来怎么样?

我知道这可能不是你所期望的答案,但它可能会为你指明正确的思考之路。

最新更新