NoSQL数据库
关系型数据库的三个特点,非关系型数据库无事务可以大大提高性能。数据库之间没有关联。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非常适合数十或数百台及其组成的数据库。
Mongodb不适用场景
- 高度事务性系统。例如银行或者会计系统
- 需要复杂SQL查询的问题