关于MongoDB


关于 MongoDB

一、基本问题

问题 解答
什么是 MongoDB? 一个以 JSON 为数据模型的文档数据库
为什么叫文档数据库? 文档来自于“JSON document”,并非我们一般理解的 PDF、Word 文档
谁开发 MongoDB? 上市公司 MongoDB Inc.,总部位于美国纽约。
主要用途 应用数据库,类似于 Oracle、MySQL
海量数据处理,数据平台
主要特点 建模为可选

JSON 数据模型比较适合开发者
横向扩展可以支撑很大数据量和并发 |
| MongoDB 是免费的吗? | MongoDB 有两个发布版本:社区版和企业版。
社区版是基于 SSPL,一种和 AGPL 基本类似的开源协议
企业版是基于商业协议,需付费使用 |

二、版本变迁

0.x:起步阶段(2008)
1.x:支持复制集和分片集(2010)
2.x:更丰富的数据库功能(2012)
3.x:WiredTiger 和周边生态环境(2014)
4.x:分布式事务支持(2018)

三、MongoDB vs 关系型数据库

- MongoDB RDBMS
数据模型 文档模型 关系模型
数据库类型 OLTP OLTP
CRUD 操作 MQL/SQL SQL
高可用 复制集 集群模式
横向扩展能力 通过原生分片完善支持 数据分区或者应用侵入式
索引支持 B-树、全文索引、地理位置索引、多键(multikey)索引、TTL 索引 B-树
开发难度 容易 困难
数据容量 没有理论上限 千万、亿
扩展方式 垂直扩展+水平扩展 垂直扩展

MongoDB 优势

优势概述

面向开发者的易用+高效数据库

1. 简单直观

以自然的方式拉建模,以直观的方式来与数据库交互

2. 结构灵活

弹性模式从容响应需求的频繁变化

3. 快速开发

做更多的事,写更少的代码

对象模型

灵活:快速响应业务变化

可动态添加新字段

  • 多形性:同一个集合中可以包含不同字段(类型)的文档对象
  • 动态性:线上修改数据模式,修改是应用与数据库均无需下线
  • 数据治理:支持使用 JSON Schema 来规范数据模式。在保证模式灵活动态的前提下,提供数据治理能力

快速:最简单快速的开发方式

  • JSON 模型之快速特性:
    • 数据库引擎只需要在一个存储区读写
    • 反范式、无关联的组织极大优化查询速度
    • 程序 API 自然,开发快速

原生的高可用

  • Replica Set - 2 to 50 个
  • 自恢复
  • 多中心容灾能力
  • 滚动服务 - 最小化服务终端

横向扩展能力

  • 需要的时候无缝扩展
  • 应用全透明
  • 多种数据分布策略
  • 轻松支持 TB - PB 数量级

文章作者: Truda
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Truda !
评论
  目录