MongoDB 的简介

MongoDB 趋势

对于 MongoDB 的认识 Q&A

|----------------------|-----------------------------------------------|
| Q | A |
| 什么是 MongoDB? | 一个以 JSON 为数据模型的文档数据库 |
| 一个以 JSON 为数据模型的文档数据库 | 文档来自于"JSON Document",并非我们一般理解的 PDF,WORD |
| 谁开发 MongDB? | 上市公司 MongoDB Inc. ,总部位于美国纽约。 |
| 主要用途有哪些? | OLTP\OLAP数据库,类似于 Oracle, MySQL,海量数据处理,数据平 台。 |
| 主要特点是什么? | 无模式或可选。友好的JSON数据模型,开发方便。 |
| MongoDB 是免费的吗? | MongoDB 有两个发布版本:社区版和企业版。企业版基于商业协议, 需付费。 |

MongoDB 版本变迁

MongoDB vs RDBMS

|---------|-------------------------------------|-------------|
| 功能 | MongoDB | RDBMS |
| 数据模型 | JSON | Relational |
| 数据库类型 | OLTP/OLAP | OLTP/OLAP |
| CRUD 操作 | MQL/SQL | SQL/SQLX |
| 高可用 | 原生Replica-Set | Cluster、中间件 |
| 横向扩展能力 | 原生MSC | 分片、中间件 |
| 索引支持 | B-Tree、F-text、GIS、multikey、HASH、TTL | B-Tree |
| 开发难度 | easy | hard |
| 数据容量 | 无理论上限 | 千万、亿 |
| 扩展方式 | 垂直扩展+水平扩展 | 垂直扩展 |

MongoDB vs MySQL逻辑结构对比

|----------|------------|
| MySQL | MongoDB |
| database | database |
| table | collection |
| row | document |

MongoDB 特色及优势

MongoDB 优势:面向开发者的易用 + 高效数据库

SQL 模型:错综复杂

JSON 模型:条理清楚

快速响应业务变化:

a. 多类型:

同一个Collection中,可以包含不同字段(类型)的文档对象.

b. 更灵活:

线上修改结构,应用与数据库均无须下线

简洁的开发模式:

a. 数据库引擎只需要在一个存储区读写.

b. 反范式、无关联的组织极大优化查询速度.

c. 程序API自然,开发快速.

SQL 插入数据代码量:

MongoDB 只需要两行代码:

MongoDB 优势:原生的高可用和横向扩展能力

高可用能力

a. Replica Set -- 2 to 50 个成员

b. 自恢复

c. 多中心容灾能力

d. 滚动服务 -- 最小化服务终端

横向扩展能力

a. 需要的时候无缝扩展

b. 应用全透明

c. 多种数据分布策略

d. 轻松支持TB--PB数量级

MongoDB 技术优势总结

a. JSON 结构和对象模型接近,开发代码量低

b. JSON 的动态模型意味着更容易响应新的业务需求

c. 复制集提供 99.999% 高可用

d. 分片架构支持海量数据和无缝扩容

相关推荐
-孤存-21 分钟前
MyBatis数据库配置与SQL操作全解析
数据库·mybatis
2301_822366351 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
万邦科技Lafite3 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台
自可乐3 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus
weixin_307779133 小时前
C#实现两个DocumentDB实例之间同步数据
开发语言·数据库·c#·云计算
盒马coding3 小时前
深度解密MySQL2PG工具MySQL至PostgreSQL语法全景拆解过程
数据库·mysql·postgresql
tb_first3 小时前
万字超详细苍穹外卖学习笔记2
java·jvm·数据库·spring·tomcat·maven
Nandeska3 小时前
13、MySQL半同步复制示例
数据库·mysql
液态不合群3 小时前
【面试题】MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
android·数据库·mysql
ytgytg283 小时前
HC小区管理系统安装,提示redis连接错误
数据库·redis·缓存