一、NoSQL的支撑理论
NoSQL属于非关系型数据库,不同于SQL语言的ACID,它的理论支撑是CAP理论,CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
- Consitency:一致性,所有节点在同一时间具有相同的数据
- Availability:可用性,每个请求不管成功或者失败都需要有响应
- Partition Tolerance:分区容错,信息的丢失或失败不会影响系统的继续运作
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三大类:
- CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
- CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
- AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
二、NoSQL的优势
- 自由扩展:基于hadoop的列式数据库,可以容纳海量数据
- 高速读写:块缓存block cache、bloom filter快速定位,响应速度快
- 最终一致性:最终结果一致,过程不一定