01-MongoDB简介
MongoDB是一个面向文档(document-oriented)的数据库,不是关系型数据库。
与关系型数据库的区别:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
MongoDB易于拓展:
- MongoDB采用横向拓展,面向文档的数据模型使它能很容易地在多台服务器之间进行数据分割。
- MongoDB能够处理跨集群的数据和负载,自动重新分配文档,将用户的请求路由到指定机器上。
MongoDB具有丰富的功能:
- 索引(indexing):支持通用耳机索引,允许多重快速查询
- 聚合(aggregation):支持聚合管道,允许通过简单的片段创建复杂的聚合
- 特殊集合类型:MongoDB支持存在时间有限的集合。如会话(session)
- 文件存储:MongoDB支持一种非常易用的协议,用户存储大文件和文件元数据
MongoDB并不具备一些在关系型数据库中很普遍的功能,如连接(join)和复杂的多行事务。省略这些功能实为了获得更好的性能
MongoDB的性能:
MongoDB能对文档进行动态填充,也能预分配数据文件以利用额外的空间来换区稳定的性能
MongoDB尽可能多的使用内存作为缓存,试图为每次查询自动选择正确的索引