NoSQL简介
NoSQL是“Not only sql”的简称,泛指非关系型的数据库。
NoSQL数据库的分类键值(Key-Value)存储数据库这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。常见的key-value数据库比如Redis。 列存储数据库这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。因为列的数据结构天生是相似的,即便逻辑上每一行之间有细微的差异,仍旧比按行存储的结构聚合在一起的数据更利于压缩,因为大多数的压缩算法只关注有限的压缩接口,像增量压缩法和前缀压缩法这类专业算法,是基于列存储的数据定制的,能够大大提高压缩比,更高的压缩比更有利于在返回查询接口的时候降低带宽的消耗。比如Hbase就是这类数据库。 文档型数据库文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。 图形(Graph)数据库图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API,比如 Infinite Graph。 NoSQL的共同特征对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
参考文献
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |