MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.
易于使用
MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库。
更好的拓展性
更容易表达复杂的层次关系
无需预定义模式(predefined schema)
易于拓展
当前面临的问题:
互联网的发展增快
存储数据量爆发
数据库扩展
纵向拓展(scale up):使用计算能力更强的机器
横向拓展(scale out):通过分区将数据分散到更多的机器、
MongoDB采用的是横向拓展。面向文档的数据模型使它更容易做数据分割。MongoDB能自动处理跨集群的数据和负载,自动重新分配文档。
丰富的功能
- 索引(indexing)
支持通用二级索引,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引以及全文索引。 - 聚合
支持“聚合管道”(aggregation pipeline)。可通过简单的片段创建复杂的聚合,并通过数据库自动优化。 - 特殊的集合类型
支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话(session)。也支持固定大小的计划,用于保存近期数据,如日志。 - 文件存储(file storage)
支持一种非常已用的协议,用户存储大文件和文件元数据。
卓越的性能
- 文档动态填充(dynamic padding)
- 预分配数据文件
利用额外的空间来换取稳定的性能。 - 缓存(cache)策略
尽可能多的内存缓存,为每次查询自动选择正确的索引
MongoDB功能非常强大,并使用保留关系型数据库的很多特性,但并不具备关系型数据库的所有功能。数据库服务器会尽可能的将处理和逻辑交给客户端(通过驱动程序或用户的应用程序代码来实现)。
网友评论