NoSQL数据库分类
Posted by 撒得一地 on 2016年3月2日 in Mongodb教程
常见的NoSQL数据库类型分类有这些:
列存储
顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
列存储典型代表:Hbase 、Cassandra、Hypertable
文档存储
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。
文档存储典型代表:MongoDB、CouchDB
key-value存储
可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)
key-value典型代表:Tokyo Cabinet / Tyrant、Berkeley DB、MemcacheDB、Redis
图存储
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。
图存储典型代表:Neo4J、FlockDB
对象存储
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。
对象存储典型代表:Neo4J、FlockDB
xml数据库
高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。
xml数据库典型代表:Berkeley DB XML、BaseX
总结:
NoSQL
– 代表着不仅仅是SQL
– 没有声明性查询语言
– 没有预定义的模式
– 键-值对存储,列存储,文档存储,图形数据库
– 最终一致性,而非ACID属性
– 非结构化和不可预知的数据
– CAP定理
– 高性能,高可用性和可伸缩性