什么是NoSQL
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。针对非结构化数据、半结构化数据具有很好的支持。
NoSQL的特点
- 代表着不仅仅是SQL;
- 没有声明性查询语言;
- 没有预定义的模式;
- 键 - 值对存储,列存储,文档存储,图形数据库;
- 最终一致性,而非ACID属性;
- 非结构化和不可预知的数据;
- CAP定理;
- 高性能,高可用性和可伸缩性。
NoSQL的优点/缺点
- 优点:
- 高可拓展性
- 分布式计算
- 低成本
- 架构的灵活性,半结构化数据
- 缺点:
- 没有标准化
- 查询功能有限
- 最终一致性是不直观的程序(CAP定理)
关联产品(根据CAP定理衍生)
类型 | 代表产品 | 特点 |
---|---|---|
KV存储 | redis/Memcache | key-value储存,根据key快速查询到value |
列存储 | Hbase/Cassandra | 是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势 |
文档存储 | MongoDB | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。 |