6种主流Nosql数据库系统对比-天盾数据恢复中心.ppt
文本预览下载声明
关系型数据库Nosql 6种主流Nosql数据库系统对比 目录 前言 什么是Nosql数据库 Nosql数据库的四大分类 6种主流Nosql数据库系统对比 谢谢观赏 前言 虽然, SQL数据库是被最为广泛性应用的数据库, 但今年来关系型数据库 – Nosql, 因为其易扩展、高性能、高可用、数据模型灵活等特色更适合互联网公司用于开发。 本文就6种主流Nosql数据库系统来进行全方位的对比。 什么是Nosql数据库 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。 Nosql数据库的四大分类 键值(Key-Value)存储数据库 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。如Redis, Voldemort, Oracle BDB. 列存储数据库。 这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak. 文档型数据库 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。 图形(Graph)数据库 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如Neo4J。 6种主流Nosql数据库系统对比 Nosql数据库之CouchDB CouchDB使用的开发语言为Erlang,遵循Apache许可,使用HTTP/REST协议。主要优点是可保持数据一致性和易用性,同时允许多站部署。适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。 Nosql数据库之Redis Redis使用的开发语言为C/C++,遵循BSD许可,使用Telnet-like协议。主要优点运行速度非常快。适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序, 但内存占用较大。常用于股票价格、数据分析、实时数据搜集、实时通讯。 Nosql数据库之MongoDB MongoDB使用的开发语言为C++,遵循AGPL(Drivers:Apache),使用Custom,binary(BSON)协议。MongoDB可在任何Mysql/PostgreSQL的环境下使用。适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对大数据库有性能要求;需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。 Nosql数据库之 Riak使用的开发语言是Erlang C、Javascript。遵循Apache,使用HTTP/REST协议。Riak优点是具有高容错性。适用于想使用类似 Cassandra(类似Dynamo)数据库但无法处理 bloat及复杂性的情况。适用于你打算做多站点复制,但又需要对单个站点的扩展性,可用性及出错处理有要求的情况。所以常用于销售数据录入、工控系统等一些不允许宕机的场合。 Nosql数据库之 Neo4j使用的开发语言为Java,遵循GPL,其中一些特性使用 AGPL/商业许可,使用HTTP/REST协议。特点是基于关系的图形数据库, 适用于图形一类数据。这是 Neo4j与其他nosql数据库的最显著区别。 常用于社会关系,公共交通网络,地图及网络拓谱。 Nosql数据库之 HBase使用的开发语言为Java,遵循Apache,使用HTTP/REST协议。HBase可支持高达数十亿的列。如果你喜爱BigTable并且需要一个能提供随机实时读写访问你海
显示全部