nosql数据库有哪些,属于nosql数据库有哪些( 四 )


选择哪种nosql数据库 MySQL SQLSERVER Oracle DB2 PostgreSQL 这些都是最常见的,哦,还有一些NoSQL的数据库,就是非关系型数据库
nosql数据库的几大类型 NoSQL太火 , 冒出太多产品了 , 保守估计也成百上千了 。

互联网公司常用的基本集中在以下几种 , 每种只举一个比较常见或者应用比较成功的例子吧 。
1. In-Memory KV Store : Redis
in memory key-value store , 同时提供了更加丰富的数据结构和运算的能力 , 成功用法是替代memcached , 通过checkpoint和commit log提供了快速的宕机恢复 , 同时支持replication提供读可扩展和高可用 。

2. Disk-Based KV Store: Leveldb
真正基于磁盘的key-value storage, 模型单一简单 , 数据量不受限于内存大小 , 数据落盘高可靠 , Google的几位大神出品的精品 , LSM模型天然写优化 , 顺序写盘的方式对于新硬件ssd再适合不过了 , 不足是仅提供了一个库 , 需要自己封装server端 。

3. Document Store: Mongodb
分布式nosql , 具备了区别mysql的最大亮点:可扩展性 。 mongodb 最新引人的莫过于提供了sql接口 , 是目前nosql里最像mysql的 , 只是没有ACID的特性 , 发展很快 , 支持了索引等特性 , 上手容易 , 对于数据量远超内存限制的场景来说 , 还需要慎重 。

4. Column Table Store: HBase
这个富二代似乎不用赘述了 , 最大的优势是开源 , 对于普通的scan和基于行的get等基本查询 , 性能完全不是问题 , 只是只提供裸的api,易用性上是短板 , 可扩展性方面是最强的 , 其次坐上了Hadoop的快车 , 社区发展很快 , 各种基于其上的开源产品不少 , 来解决诸如join、聚集运算等复杂查询 。
什么是NoSQL数据库 1、键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表 , 这个表中有一个特定的键和一个指针指向特定的数据 。 Key/value模型对于IT系统来说的优势在于简单、易部署 。
但是如果数据库管理员(DBA)只对部分值进行查询或更新的时候 , Key/value就显得效率低下了 。 举例如:Tokyo Cabinet/Tyrant , Redis , Voldemort , Oracle BDB 。

2、列存储数据库
这部分数据库通常用来应对分布式存储的海量数据 。 键仍然存在 , 但是它们的特点是指向了多个列 。 这些列是由列家族来安排的 。 如:Cassandra , HBase , Riak 。

3、文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的 , 而且它同第一种键值存储相类似 。 该类型的数据模型是版本化的文档 , 半结构化的文档以特定的格式存储 , 比如JSON 。
文档型数据库可以看作是键值数据库的升级版 , 允许之间嵌套键值 , 在处理网页等复杂数据时 , 文档型数据库比传统键值数据库的查询效率更高 。 如:CouchDB , MongoDb , 国内也有文档型数据库SequoiaDB , 已经开源 。

4、图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同 , 它是使用灵活的图形模型 , 并且能够扩展到多个服务器上 。
NoSQL数据库没有标准的查询语言(SQL) , 因此进行数据库查询需要制定数据模型 。 许多NoSQL数据库都有REST式的数据接口或者查询API 。 如:Neo4J , InfoGrid , Infinite Graph 。
扩展资料
NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景 。 对于非结构化数据的处理更合适 , 如文章、评论 , 这些数据如全文搜索、机器学习通常只用于模糊处理 , 并不需要像结构化数据一样 , 进行精确查询 , 而且这类数据的数据规模往往是海量的 , 数据规模的增长往往也是不可能预期的 。
而NoSQL数据库的扩展能力几乎也是无限的 , 所以NoSQL数据库可以很好地满足这一类数据的存储 。 NoSQL数据库利用key-value可以大量的获取大量的非结构化数据 , 并且数据的获取效率很高 , 但用它查询结构化数据效果就比较差 。

推荐阅读