一种NoSQL(非关系型数据库)数据库
关系型数据库的三个特点:1.事务,2.表关联,3.表结构约束。而非关系型数据库无事务可以大大提高性能。数据库之间没有关联。key-value结构没有表约束。
MapReduce分发归纳
Mongodb提供对MapReduce内置引擎的支持
去热点、数据均匀
Chunk
数据会以 chunk 为单位(默认64MB)根据 shardKey
分散到后端1或多个 shard 上。
①当一个chunk的大小超过配置中的chunk size时,MongDB的后台进程会把这个chunk切分成更小的chunk,从而避免chunk过大的情况
②在MongoDB中,balancer是一个后台进程,负责chunk的迁移,从而均衡各个shard server的负载。chunk size默认值64M,生产库上选择适合业务的chunk size是最好的。
Mongodb适用场景
①缓存数据、实时数据。Mongodb可以搭载高可用集群,提供持久化的数据来源。
②大尺寸、低价值的数据存储。传统关系型数据存储比较昂贵。
③高伸缩性场景。Mongodb非常适合数十或数百台及其组成的数据库。
Mongodb不适用场景
①高度事务性系统。例如银行或者会计系统
②需要复杂SQL查询的问题