【问题标题】:How is mongodb implemented and why is it different than sql databases [closed]mongodb是如何实现的,为什么它与sql数据库不同[关闭]
【发布时间】:2017-01-24 04:28:05
【问题描述】:

我想知道mongodb(一般是nosql)是如何实现的?是否使用 B+ 树?如果是,它与 SQL 数据库有何不同以及为什么不同?

谢谢!

【问题讨论】:

  • 这很容易用谷歌搜索。

标签: mongodb b-tree


【解决方案1】:

请参考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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2021-02-19
    • 2011-02-23
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多