mongodb 是如何实现的,为什么它与 sql 数据库不同
How is mongodb implemented and why is it different than sql databases
我想知道 mongodb(通常是 nosql)是如何实现的?是用B+树吗?如果是,它与 SQL 数据库有何不同?
谢谢!
请参考here
什么是MySQL?
MySQL 是一种流行的开源关系数据库管理系统 (RDBMS),由 Oracle Corporation 开发、分发和支持。与其他关系系统一样,MySQL 将数据存储在表中并使用结构化查询语言 (SQL) 进行数据库访问。在 MySQL 中,您可以根据自己的要求预先定义数据库架构,并设置规则来管理表中字段之间的关系。在MySQL中,相关信息可能存储在单独的表中,但通过使用连接关联。这样,数据重复就被最小化了。
什么是MongoDB?
MongoDB 是由 MongoDB, Inc. 开发的开源数据库。MongoDB 将数据存储在类似于 JSON 的文档中,这些文档的结构可能有所不同。相关信息存储在一起,以便通过MongoDB查询语言进行快速查询访问。 MongoDB 使用动态模式,这意味着您可以创建记录而无需先定义结构,例如字段或其值的类型。您可以简单地通过添加新字段或删除现有字段来更改记录(我们称之为文档)的结构。该数据模型使您能够轻松地表示层次关系、存储数组和其他更复杂的结构。集合中的文档不需要具有相同的字段集,并且数据的非规范化很常见。 MongoDB 在设计时也考虑到了高可用性和可扩展性,包括开箱即用的复制和自动分片。
功能比较
与 MySQL 一样,MongoDB 提供了一组丰富的特性和功能,远远超出了简单键值存储所提供的功能。 MongoDB 拥有查询语言、功能强大的二级索引(包括文本搜索和地理空间)、强大的数据分析聚合框架等。使用 MongoDB 与关系数据库相比,您还可以在更多样化的数据类型中大规模使用这些功能。
MySQL MongoDB
Rich Data Model No Yes
Dynamic Schema No Yes
Typed Data Yes Yes
Data Locality No Yes
Field Updates Yes Yes
Easy for Programmers No Yes
Complex Transactions Yes No
Auditing Yes Yes
Auto-Sharding No Yes
我想知道 mongodb(通常是 nosql)是如何实现的?是用B+树吗?如果是,它与 SQL 数据库有何不同?
谢谢!
请参考here
什么是MySQL?
MySQL 是一种流行的开源关系数据库管理系统 (RDBMS),由 Oracle Corporation 开发、分发和支持。与其他关系系统一样,MySQL 将数据存储在表中并使用结构化查询语言 (SQL) 进行数据库访问。在 MySQL 中,您可以根据自己的要求预先定义数据库架构,并设置规则来管理表中字段之间的关系。在MySQL中,相关信息可能存储在单独的表中,但通过使用连接关联。这样,数据重复就被最小化了。
什么是MongoDB?
MongoDB 是由 MongoDB, Inc. 开发的开源数据库。MongoDB 将数据存储在类似于 JSON 的文档中,这些文档的结构可能有所不同。相关信息存储在一起,以便通过MongoDB查询语言进行快速查询访问。 MongoDB 使用动态模式,这意味着您可以创建记录而无需先定义结构,例如字段或其值的类型。您可以简单地通过添加新字段或删除现有字段来更改记录(我们称之为文档)的结构。该数据模型使您能够轻松地表示层次关系、存储数组和其他更复杂的结构。集合中的文档不需要具有相同的字段集,并且数据的非规范化很常见。 MongoDB 在设计时也考虑到了高可用性和可扩展性,包括开箱即用的复制和自动分片。
功能比较 与 MySQL 一样,MongoDB 提供了一组丰富的特性和功能,远远超出了简单键值存储所提供的功能。 MongoDB 拥有查询语言、功能强大的二级索引(包括文本搜索和地理空间)、强大的数据分析聚合框架等。使用 MongoDB 与关系数据库相比,您还可以在更多样化的数据类型中大规模使用这些功能。
MySQL MongoDB
Rich Data Model No Yes
Dynamic Schema No Yes
Typed Data Yes Yes
Data Locality No Yes
Field Updates Yes Yes
Easy for Programmers No Yes
Complex Transactions Yes No
Auditing Yes Yes
Auto-Sharding No Yes