MongoDB
是什么?
MongoDB
是个可扩展、高性能、开源、面向文档(document-oriented)的,由c++实现的,介于关系数据库和非关系数据库之间,基于分布式文件系统存储的开源数据库产品。目前最新版本: 4.2
摘自英文俚语 humongous
,意为“巨大”,可能也是 MongoDB
设计之初的理念,为处理大数据而生。
JSON
形式的标记Mongodb
中的Map/reduce
主要是用来对数据进行批量处理和聚合操作。GridFS
是MongoDB
中的一个内置功能,可以用于存放大量小文件。SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table | joins | 表连接,MongoDB不支持 |
primary | key | primary key 主键,MongoDB自动将_id字段设置为主键 |
RDBMS | MongodbDB |
---|---|
数据库 | 数据库 |
表格 | 集合 |
行 | 文档 |
列 | 字段 |
表联合 | 嵌入文档 |
主键 | 主键 (MongoDB 提供了 key 为 _id ) |
ACID
属性CAP定理
MongoDB
是非结构化文档数据库,扩展字段很容易且不会影响原有数据。内容管理或者博客平台等,例如圈子系统,存储用户评论之类的。MongoDB
侧重高数据写入的性能,而非事务安全,适合业务系统中有大量“低价值”数据的场景。本身存的就是json格式数据。例如做日志系统。Mysql
单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展,MongoDB
内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。