NoSQL分类

NoSQL分类简介。

NoSQL数据库可分为:键值存储列存储文档存储图存储

键值存储

键值存储是由KV哈希表来实现,例如,RedisMemcached

优点:查找速度快,查找数据时间复杂度O(1)。

缺点:数据无结构化,通常只被当作字符串或者二进制数据,数据无序。

Redis支持了特殊的数据结构。

列存储

列存储是按列存储数据的,例如,HBase/Cassandra

优点:针对列的查询性能好;方便存储结构化和半结构化数据,方便做数据压缩与按列扩展(横向扩展)。

缺点:功能相对受限。

文档存储

文档存储是基于键值对的扩展,例如,MongoDB/CouchDB

优点:数据结构要求不严格;表结构可变;不需要预先定义表结构。

图存储

图存储是基于节点和关系组成的图,例如,Neo4j

优点:利用图结构相关算法(最短路径、节点度关系查找等)。

缺点:可能需要对整个图做计算,不利于图数据分布存储。