NoSQL15独NoSql数据库

趁着互联网web2.0网站的起,非关系型的数据库现在成了一个尽热门之初领域,非关系数据库产品的上进异常便捷。而传统的关系数据库在应付web2.0网站,特别是超大规模和赛起的SNS类型的web2.0纯动态网站曾显得力不从心,暴露了好多难以克服的题材,如:对数据库高并发读写的需、对海量数据的大效率存储和走访的急需、对数据库的胜而扩展性和高可用性的需求等等,下面我虽跟大家几乎栽普遍的nosql数据库。

1、MongoDB

介绍

MongoDB是一个根据分布式文件存储的数据库。由C++语言编写。主要解决的凡海量数据的顾效率问题,为WEB应用提供可扩大的大性能数据存储解决方案。当数据量达到50GB以上的当儿,MongoDB的数据库访问速度是MySQL的10加倍以上。MongoDB的并发读写效率不是特地漂亮,根据官方提供的属性测试表明,大约每秒可以拍卖0.5万~1.5万软读写请求。MongoDB还从带了一个良之分布式文件系统GridFS,可以支撑海量的数目存储。

MongoDB也发出一个Ruby的品种MongoMapper,是法Merb的DataMapper编写的MongoDB接口,使用起来非常简单,几乎和DataMapper一模一样,功能特别有力。

MongoDB是一个在关系数据库和免关系数据库之间的成品,是非关系数据库当中作用最丰富,最像关系数据库的。他支持的数据结构非常松懈,是近乎json的bjson格式,因此可储存比较复杂的数据类型。Mongo最老的风味是他支持之询问语言很强劲,其语法有点类似于面向对象的查询语言,几乎可兑现类似关系数据库单表查询的多方效果,而且还支持对数据建立目录。

所谓“面向集”(Collenction-Orented),意思是数为分组存储在数码集中,被称一个凑合(Collenction)。每个
集合在数据库被还产生一个唯一的标识名,并且可涵盖无限数目的文档。集合的定义类似关系项目数据库(RDBMS)里之表(table),不同之凡它不需要定
义任何模式(schema)。
模式自由(schema-free),意味着对仓储在mongodb数据库被的文件,我们无需理解她的另组织定义。如果需要的话,你一点一滴可拿不同结构的公文存储在和一个数据库里。

囤在聚集中之文档,被贮存吗键-值对的款型。键用于唯一标识一个文档,为字符串类型,而值则好是各被复杂的文件类型。我们遂这种囤形式也BSON(Binary
Serialized dOcument Format)。

MongoDB服务端可运行于Linux、Windows或OS
X平台,支持32各类与64各类应用,默认端口为27017。推荐运行于64各项平台,因为MongoDB在32各模式运行时支持之极致充分文件尺寸为2GB。

MongoDB把数量存储于文书被(默认路径为:/data/db),为提高效率使用外存映射文件进行田间管理。

特性

她的特征是强性能、易部署、易用,存储数据十分有利于。主要意义特色有:

面向集存储,易积存对象类型的数。
模式自由。
支持动态查询。   
支撑了索引,包含其中对象。   
支撑查询。   
支撑复制和故障恢复。   
采用高效之二进制数据存储,包括大型对象(如视频等)。   
电动处理碎片,以支持称计算层次之扩展性。   
支持RUBY,PYTHON,JAVA,C++,PHP,C#顶多种语言。   
文件存储格式为BSON(一栽JSON的扩充)。   
而是透过网访问。

官方网站
http://www.mongodb.org/**
**

2、CouchDB

介绍

Apache CouchDB 是一个面向文档的数据库管理体系。它提供以 JSON
作为数据格式的 REST
接口来对该进行操作,并可以由此视图来决定文档的团和显现。 CouchDB 是
Apache 基金会的世界级开源项目。

CouchDB是故Erlang开发之面向文档的数据库系统,其数量存储方接近Lucene的Index文件格式。CouchDB最要命的意义在于它是一个面向Web应用之初一替代存储系统,事实上,CouchDB的口号就是是:下一代底Web应用存储系统。

特性

要功用特色产生:

CouchDB是分布式的数据库,他得以将仓储系统分布及n台物理的节点上面,并且大好之协调以及共同节点内的数量读写一致性。这当为足以于Erlang任与伦比的起特性才能够不辱使命。对于因web的常见使用文档应用,然的分布式可以吃它们不必像风的关系数据库那样分库拆表,在动用代码层进行大气之反。

CouchDB是面向文档的数据库,存储半结构化的数,比较像样lucene的index结构,特别适合储存文档,因此大符合CMS,电话仍,地址以等采取,在这些用场合,文档数据库要比较关系数据库更加有利于,性能再好。
 

CouchDB支持REST
API,可以让用户以JavaScript来操作CouchDB数据库,也得以用JavaScript编写查询语句,我们可想像一下,用AJAX技术成CouchDB开发出来的CMS系统会是多的简约与福利。其实CouchDB只是Erlang应用之冰山一角,在前不久几乎年,基于Erlang的采取为收获的兴旺之前行,特别是在基于web的宽广,分布式应用领域,几乎都是Erlang的优势项目。

官方网站
http://couchdb.apache.org/

3、Hbase

介绍

HBase是一个分布式的、面向列的开源数据库,该技能自Chang et
al所著的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File
System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了仿佛于Bigtable的力量。HBase是Apache的Hadoop项目之子项目。HBase不同让一般的关系数据库,它是一个契合给未结构化数据存储的数码库.另一个两样的是HBase基于列的如休是根据行之模式。

HBase – Hadoop
Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可每当降价PC
Server上加建筑起广泛结构化存储集群。   HBase是Google
Bigtable的开源实现,类似Google
Bigtable利用GFS作为该文件存储系统,HBase利用Hadoop
HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中之雅量数据,HBase同样运用Hadoop
MapReduce来处理HBase中之海量数据;Google Bigtable利用
Chubby作为合办服务,HBase利用Zookeeper作为对应。

HBase访问接口

Native Java API,最健康和飞跃的访方式,适合Hadoop MapReduce
Job并行批处理HBase表数据
HBase Shell,HBase的命令行工具,最简便的接口,适合HBase管理应用
Thrift
Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合任何异构系统在线访问HBase表数据
REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制
Pig,可以用Pig
Latin流式编程语言来操作HBase中的数量,和Hive类似,本质最终为是编译成MapReduce
Job来处理HBase表数据,适合做多少统计
Hive,当前Hive的Release版本尚没有加入对HBase的支撑,但于生一个版本Hive
0.7.0蒙以见面支撑HBase,可以行使类SQL语言来访问HBase

特性

首要功能特色有:

支撑数十亿行X上百万列

使用分布式架构 Map/reduce

针对实时查询进行优化

高性能 Thrift网关

透过当server端扫描以及过滤实现对查询操作预判

支持 XML, Protobuf, 和binary的HTTP

基于 Jruby( JIRB)的shell

针对部署改变与比较小之升官还见面再也回滚

切莫见面冒出单点故障

堪比MySQL的随机走访性能

官方网站
http://hbase.apache.org/

4、cassandra


**
介绍**

Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其根本职能比Dynomite(分布式的Key-Value存储系统)更增长,但支持过也不如文档存储MongoDB(介于关系数据库和无关系数据库之间的开源产品,是非关系数据库当中作用最好丰富,最像关系数据库的。支持的数据结构非常松懈,是近似json的bjson格式,因此得以储存比较复杂的数据类型。)Cassandra最初由Facebook开发,后变更成了开源项目。它是一个网络社交云计算方面得天独厚之数据库。以Amazon专有的完全分布式的Dynamo为根基,结合了Google
BigTable基于列族(Column
Family)的数据模型。P2P去中心化的储存。很多方面还可以称之为Dynamo
2.0。

特性

同其余数据库比较,有几乎独突出特征:

模式灵活
:使用Cassandra,像文档存储,你不用提前解决记录受之字段。你得以系运行时随意的长或换除了字段。这是一个惊心动魄之频率提升,特别是在大型部
署上。
实在的而扩大性
:Cassandra是纯意义上的档次扩展。为受集群添加更多容量,可以对任何一样玉电脑。你不要再度开任何进程,改变使用查询,或手动迁移任何数。
差不多多少基本识别
:你可以调动而的节点布局来避免有一个数核心起火,一个备用的数据基本以至少发生各国条记下的通通复制。

有的一旦Cassandra提高竞争力的其他功能:

克查询 :如果你莫爱周底键值查询,则足以设置键的限定来查询。
列表数据结构
:在混合模式可以以超级列添加至5维。对于每个用户之目录,这是非常便利之。
分布式写操作
:有可以于另地方外时刻汇总读或写任何数。并且不会见生外单点失败。

官方网站
http://cassandra.apache.org/

5、Hypertable

介绍

Hypertable是一个开源、高性能、可伸缩的数据库,它应用与Google的Bigtable相似的模子。在过去反复年被,Google为以
PC集群
上运行的可伸缩计算基础设备规划建造了三只举足轻重部分。第一独至关重要的基本功设备是Google
File
System(GFS),这是一个胜过可用的文件系统,提供了一个大局的命名空间。它经过跨机器(和跨机架)的文本数量复制来上高可用性,并为此免受传统
文件存储系统无法避免的很多败的熏陶,比如电源、内存和网端口等失败。第二独基础设备是称呼也Map-Reduce的测算框架,它和GFS紧密协作,帮
助处理收集到的海量数据。第三个基础设备是Bigtable,它是风数据库的代。Bigtable让您可以透过有些主键来团海量数据,并落实快捷之
查询。Hypertable是Bigtable的一个开源实现,并且根据我们的想法进行了有改善。

特性

关键功能特色:

负载均衡的处理

版本控制和一致性

可靠性

布为多只节点

官方网站
http://hypertable.org/

6、Redis

介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序聚集)。这些数据类型都支持push/pop、add/remove及获得交集并集和差集及重新增长的操作,而且这些操作都是原子性的。在是基础及,redis支持各种不同措施的排序。与memcached一样,为了保险效率,数据还是缓存在内存中。区别之是redis会周期性的管创新的多寡勾勒副磁盘或者将修改操作写副追加的记录文件,并且于这基础及贯彻了master-slave(主从)同步。

性测试结果:

SET操作各秒钟 110000 次,GET操作各秒钟 81000 次,服务器配置如下:

Linux 2.6, Xeon X3320 2.5Ghz.

stackoverflow 网站使用 Redis 做呢缓存服务器。

特点

要功用特色:

安全性

主从复制

运作颇快

支撑 sets(同时为支持 union/diff/inter)

支撑列表(同时也支撑排;阻塞式 pop操作)

支撑哈希表(带有多个域的目标)

支持排序 sets(高得分表,适用于范围查询)

Redis支持工作

支撑将数据设置成过期数据(类似快速缓冲区设计)

Pub/Sub允许用户实现信息机制

官方网站
http://redis.io/

7、Tokyo Cabinet/Tokyo Tyant

介绍

Tokyo Cabinet(TC)和Tokyo Tyrant(TT)的开发者是日本人数Mikio
Hirabayashi,主要用于日本不过要命之SNS网站mixi.jp。TC出现的日最好早,现在就是一个异常成熟之路,也是Key-Value数据库领域最深的热,现在广泛应用于网站。TC是一个胜过性能的存储引擎,而TT提供了差不多线程高并发服务器,性能也大理想,每秒可以拍卖4万~5万不成读写操作。

TC除了支持Key-Value存储之外,还支持Hashtable数据类型,因此特别像一个简易的数据库表,并且还支持因Column的原则查询、分页查询与排序功能,基本上相当给支撑单表的基本功查询功能,所以可以简单地替代关系数据库的过剩操作,这也是TC受到大家欢迎之要因之一。有一个Ruby项目miyazakiresistance将TT的Hashtable的操作封装成跟ActiveRecord一样的操作,用起非常便捷。

特性

TC/TT在Mixi的骨子里应用中,存储了2000万长条以上之多少,同时支持了上万独冒出连接,是一个磨练的路。TC在保险了极高的连发读写性能的又,还兼具可靠的数目持久化机制,同时还支持类似关系数据库表结构的Hashtable以及简单的标准化、分页和排序操作,是一个万分优惠的NoSQL数据库。

TC的重点缺点是,在数据量达到上亿级别下,并发写数据性会大幅度下降,开发人员发现以TC里面插入1.6亿修2KB~20KB数据的时段,写副性能开始急剧下降。即当数据量达到上亿长长的之时节,TC性能就开大降低,从TC作者自己提供的Mixi数据来拘禁,至少上千万漫长数据量的早晚还不曾碰到这样强烈的描摹副性能瓶颈。

官方网站
http://fallabs.com/tokyocabinet/

8、Flare

介绍

TC是日本首先怪SNS网站mixi.jp开发之,而Flare是日本亚大SNS网站green.jp开发的。简单地说,Flare就是给TC添加了scale(可扩大)功能。它替换了TT部分,自己另外为TC写了网络服务器。Flare的关键特色就是支持scale能力,它以网络服务端之前添加了一个Node
Server,用来治本后端平的大都独服务器节点,因此好动态增长数据库服务节点、删除服务器节点,也支持Failover。如果你的行使状况必须被TC可以scale,那么得设想Flare。

flare唯一的弱项就是是他才支持memcached协议,因此当您利用flare的下,就无可知动用TC的table数据结构了,只能动用TC的key-value数据结构存储。

特性

尚未找到相关的牵线。

官方网站
http://flare.prefuse.org/

9、Berkeley DB

介绍

Berkeley DB
(DB)是一个大性能的,嵌入数据库编程库,和C语言,C++,Java,Perl,Python,PHP,Tcl以及另外不少言语都发绑定。Berkeley
DB可以保存任意档次的键/值对,而且得为一个键封存多独数据。Berkeley
DB可以支持数千底并发线程同时操作数据库,支持不过老256TB之数量,广泛
用于各种操作系统包括大多数Unix类操作系统及Windows操作系统及实时操作系统。

Berkeley
DB最初开发之目的是为新的HASH访问算法来替代本来的hsearch函数和大度的dbm实现(如AT&T的dbm,Berkeley的
ndbm,GNU项目的gdbm),Berkeley
DB的第一只发行本在1991年出现,当时还包含了B+树数据看算法。在1992年,BSD
UNIX第4.4批发本受富含了Berkeley DB1.85版本。基本上认为当下是Berkeley
DB的首先独正式版。在1996年中叶,Sleepycat软件公司建立,提供针对性Berkeley
DB的买卖支持。在及时以后,Berkeley
DB得到了广泛的运用,成为平等款款独树一帜的嵌入式数据库系统。2006年Sleepycat公司深受Oracle
公司收购,Berkeley
DB成为Oracle数据库家族之等同各,Sleepycat原有开发者继续在Oracle开发Berkeley
DB,Oracle继续原来的授权法以加大了针对Berkeley
DB的付出力度,继续提升了Berkeley DB在软件行业之声誉。Berkeley
DB的即时发行本是4.7.25。

特性

着重特征:

访问速度快

省硬盘空间

官方网站
http://www.oracle.com/us/products/database/overview/index.html?origref=http://www.oschina.net/p/berkeley+db

10、memcachedb

介绍

MemcacheDB是一个分布式、key-value形式的持久存储系统。它不是一个缓存组件,而是一个冲对象存取的、可靠的、快速的坚持不懈存储引擎。协议和memcache一致(不整),所以众多memcached客户端都得以跟她总是。MemcacheDB采用Berkeley
DB作为持久存储组件,故多Berkeley DB的风味的他都支持。

特性

MemcacheDB是一个分布式、key-value形式的持久存储系统。它不是一个缓存组件,而是一个根据对象存取的、可靠的、快速的持久存储引擎。
协议和memcache一致(不整),所以重重memcached客户端都足以和其连接。MemcacheDB采用Berkeley
DB作为持久存储组件,故多Berkeley DB的特色的外还支持。
  我们是站于巨人之双肩上的。MemcacheDB的前端缓存是Memcached
  前端:memcached的网络层   后端:BerkeleyDB存储   

描绘速度:从当地服务器通过memcache客户端(libmemcache)set2亿漫漫16字节长的key,10许节长的Value的记录,耗时
16572秒,平均速度12000条记录/秒。   

读速度:从地方服务器通过memcache客户端(libmemcache)get100万长条16字节长的key,10字节长的Value的记录,耗
时103秒,平均速度10000漫长记录/秒。   ·支持之memcache命令

官方网站
http://memcachedb.org/

11、Memlink

介绍

Memlink
是天涯社区开发之一个胜性能、持久化、分布式的Key-list/queue数据引擎。正而称中之memlink所示,所有数据还建构在内存中,保证了
系统的高性能
(大约是redis几加倍),同时采取了redo-log技术保证数据的持久化。Memlink还支持主从复制、读写分离、List过滤操作相当功能。

及Memcached不同的凡,它的value是一个list/queue。并且提供了如持久化,分布式的意义。听起来有些像Redis,但它们称作比Redis更好,在广大Redis做得还糟糕的地方开展了改进和百科。提供的客户端支出包包括
c,python,php,java 四栽语言。

特性

内存数据引擎,性能极为高效
List块链结构,精简内存,优化查找效率
Node数据项可定义,支持多过滤操作
支撑redo-log,数据持久化,非Cache模式
分布式,主从同步

官方网站
http://code.google.com/p/memlink/

12、db4o

介绍

“利用表格存储对象,就像是将汽车开回家,然后拆成零件放上车库里,早晨足再次管汽车装配起来。但是人们不禁要问,这是未是泊车的极致有效之不二法门也。”
– Esther Dyson   db4o 是一个开源之纯面向对象数据库引擎,对于 Java 与
.NET 开发者来说还是一个略容易用底靶子持久化工具,使用简便。同时,db4o
已经被第三正在认证为有着优良性能的面向对象数据库, 下面的标准化测试图对 db4o
和一些风俗习惯的持久方案展开了比。db4o
于这次较受排名第二,仅仅滞后于JDBC。通过图 1
的尺度测试结果,值得咱们细细品味的是下 Hibernate/HSQLDB 的方案以及
JDBC/HSQLDB 的方案以性方面有所鲜明差异,这吗说明了业界对 Hibernate
的忧患。而 db4o 的美妙性能,让咱们深信: 更 OO 并不一定会牺牲性能。

还要,db4o 的一个特征就是无论需 DBA
的保管,占用资源充分粗,这生合乎嵌入式应用以及 Cache 应用, 所以自从 db4o
发布以来,迅速掀起了许许多多用户用 db4o
用于各种各样的嵌入式系统,包括流动软件、医疗设备和实时控制体系。
  db4o 由来自加州硅谷的开源数据库公司 db4objects
开发并担负经贸运营及支撑。db4o 是根据 GPL 协议。db4objects 于 2004 年在
CEO Christof Wittig 的长官下成,资金背景包括 Mark Leslie 、 Veritas
软件商店 CEO 、 Vinod Khosla ( Sun 公司创始人之一)、 Sun 公司 CEO
在内的硅谷高层投资人组成。毫无疑问,今天 db4objects
公司是硅谷炙手可热的技术创新者之一。

特性

db4o
的靶子是供一个功能强大的,适合放置的数据库引擎,可以干活于装置,移动产品,桌面以及服务器等各种平台。主要特征如下:
  开源模式。与任何 ODBMS 不同,db4o
为初始源软件,通过开源社区的力让开发 db4o 产品。   原生数据库。db4o
是 100%
原生的面向对象数据库,直接以编程语言来操作数据库。程序员无需进行 OR
映射来存储对象,大大节约了程序员在储存数据的支付时间。   高性能。
下图也 db4o 官方公布的规格测试数据,db4o 比下 Hibernate/MySQL
方案于少数测试线路及快高出 44 倍增之多!并且安装简便,仅仅用 400Kb
左右之 .jar 或 .dll 库文件。在过渡下的数不胜数文章被,我们以只关注于 Java
平台的运,但是实际上 db4o 毫无疑问会十分好地以 .NET平台工作。

轻嵌入。使用 db4o 仅得引入 400 多 k 的 jar 文件或者 dll
文件,内存消耗极小。   零管理。使用 db4o 无需 DBA,实现零管理。
  支持多平台。db4o 支持从 Java 1.1 到 Java 5.0,此外尚支持 .NET 、
CompactFramework 、 Mono 等 .NET 平台,也可以运行在 CDC 、
PersonalProfile 、 Symbian 、 Savaje 以及 Zaurus 这种支撑反射的 J2ME
方言环境被,还好运行在 CLDC 、 MIDP 、 RIM/Blackberry 、 Palm OS
这种无支持反射的 J2ME 环境面临。
  或许开发者会问,如果现有的应用环境已经产生矣涉及项目数据库怎么惩罚?没关系,db4o
的 dRS(db4o Replication System)可实现 db4o
与关系项目数据库的双向共(复制),如图 3 。 dRS 是根据 Hibernate
开发,目前之版本是 1.0 ,并运行于 Java 1.2 或重强版本平台达成,基于 dRS
可实现 db4o 到 Hibernate/RDBMS 、 db4o 到 db4o 以及 Hibernate/RDBMS 到
Hibernate/RDBMS 的双向复制。

官方网站
http://www.db4o.com/china/

13、Versant

介绍

Versant Object Database (V/OD) 提供有力的数目管理,面向 C++, Java or
.NET 的靶子模型,支持大出现和广泛数据集合。

Versant对象数据库是一个目标数据库管理体系(ODBMS:Object Database
Management
System)。它至关重要受用当纷繁的、分布式的和异构的环境遭受,用来压缩开发量和加强性。尤其当次是运用Java和(或)C++语言编写的早晚,尤其有因此。

它们是一个完好无缺的,电子基础设备软件,简化了业务之构建与布局之分布式应用程序。

用作一个杰出的数据库产品,Versant
ODBMS在筹划时之靶子即以满足客户在异物处理平台跟合作社级信息体系受对此大性能、可量测性、可靠性以及兼容性方面的求。

Versant对象数据库都在为商家工作使用提供可靠性、完整性和强性能方面得到了建树,Versant
ODBMS所呈现出底便捷之多线程架构、internal parallelism
、平稳的Client-Server结构和速的查询优化,都反映了其很出众的性质和可扩展性。

Versant对象数据库包括Versant
ODBMS,C++和Java语言接口,XML工具包和异步复制框架。

特性

同一、强有力的优势

Versant Object
Database8.0,适用于应用环境中含复杂对象模型的数据库,其计划目标是会处理这些用时得之导航式访问,无缝的数额分发,和商社级的面。

对群应用程序而言,最富有挑战性的面是决定作业模型本身的内在复杂性。
电信基础设备,交通运输网络,仿真,金融工具以及另世界的繁杂必须得到支持,
而且这种支持复杂性的方式还要能够就环境和需要转变而不息地改进应用程序。
这些应用程序的重要是圈子与这些领域的逻辑。
复杂的计划性应当以目标模型也底蕴。将技艺要求例如持久性(和SQL)与世界模型混合在一起的架构会带来灾难性的产物。

Versant对象数据库使你可采用那些单纯含有域行为信息之对象,而毫无考虑持久性。同时,Versant对象数据库尚会提供过多只数据库的无缝的多寡分发,高并发性,细粒度锁,顶级性能,
以及由此复制和另技术提供的高可用性。现代Java中之对象关系映射工具就简化了很多射的问题,
但是它们还不可知提供Versant所能够提供的无缝数据分发的力量跟强性能。

仲、主要特色

C++、Java以及.NET 的透明对象持久

支持对象持久规范,如JDO

跳多数据库的无缝数据分发

商家级的高可用性选项

动态模式创新

管理工作量少(或非需)

捧到端的靶子支持架构

细粒度并作控制

多线程,多会话

支持国际字符集

高速数据采集

三、优势

目标层次结构的敏捷储存、检索和浏览

性高于干项目数据库10 加倍以上

减掉开支时间

季、8.0底新特性

增长的多核线性扩展能力

加强的数据库管理工具(监控、数据库检查、数据整合)

支撑基于LINQ的.NET绑定机制

支持.NET和JDO应用之FTS基于“Black Box”工具的数据库活动记录和析

五、Versant对象数据库特性

动态模式创新

Versant支持缓慢模式创新,这意味当被用时,对象才见面从原的模式转为新的模式,就不需要映射了。所有这些都支持数据库模式之翻新和快快开发。

过多数据库的无缝数据分发

客户端和一个要多个数据库进行无缝交互。单个的数据库无缝地统一合在一起,使你能为多少分区,提高读写能力,增大总体的数据库的轻重缓急。这些数据库及之数据分发是晶莹底。它们让收合在一起形成一个

无缝的数据库,提供巨大的可是扩展性。

连作控制

对象级锁确保只有当个别只应用程序试图更新同一对象时才见面产生冲突之来,这跟因页的锁机制不同。基于页的锁机制可能会见造成出现热点的假象。

透明的C++对象持久性

C++对象,STL类,标准C++集合如字典,映射,映射的照射,诸如此类,以相貌保存于数据库中。状态变化于后台受机关追踪。当有关的业务提交后,所有的转将见面吃自动发送到数据库。因此即便能形成一致栽特别自然的,低干扰的编程风格,这样,就可知促成应用程序的高速支付,同时当求发生变化时,应用程序就能活地改。

透明的Java对象持久性

V/OD的JVI & JDO 2.0 API 提供了晶莹剔透底简约对象(POJO)的持久性,包括 Java
2 持久类,接口,以及其他用户定义之类似。状态变化

以后台受电动追踪。事务提交后,自动把所有变更写副数据库。因此,对于托管和非托管部署,您还能够取轻量级的编程风格。

但是全置于Versant 可以叫平放至应用程序中,数据库规模得以上TB 级别。

并且可自主运行,不欲外保管。

六、企业级的表征

目标端到端

对象端到端意味着你的以对象存在让客户端,网络达到,以及数据库中。与关系项目数据库不同之凡,对象在内存中及数据库中之代表中莫待另外映射或换。

利用的客户端缓存透明地缓存对象为加强速度。数据库支持对象,它能够行查询,建立目录,使下能够平衡它与数据库里的长河执行。XA的支撑而与其它事情数据源协调成为可能。

七、V/OD 8数据库体系架构

高可用性

经在线进行数据库管理落实数据库的高可用性。

容错服务器

容错服务器选项可以以Versant数据库的硬件或是软件出现故障的下,自动进行失效转移与数据恢复。容错服务器使用的是当片独数据库实例之间进行同步复制,一旦出现故障,容错服务器也会见支持透明重共。

异步数据复制

异步数据复制选项支持多单对象服务器之间的中坚异步复制与点对碰异步复制。可以利用异步数据复制将数据复制到一个分布式恢复站点或用数据在差不多只地面的靶子数据库里展开复制,以提高性能和可靠性。

高可用性备份

高可用性数据备份选项使Versant可以使EMC
Symmetrix或其它合作社级存储系统的磁盘镜像的特征,来对老可怜的数量卷进行在线备份,同时以休会见潜移默化至可用性。

在线再组织

Versant
数据库再组织挑选为了会去大量靶的使用而计划的。它如果用户会收回数据库中莫利用的空间,同时如果数据库保持正规运作,增加可用空间,改善数据库的性能。

八、为什么而采取Versant面向对象数据库?

通过缩短研发时间来加快上市

靶关联映射代码可能占了若的以之40%要还多。有了Versant面向对象数据库,映射代码就不再用了。

极大地提高了性能与数码吞吐力

当用中涉嫌到复杂的内存对象模式,尤其是关乎访问时,对象数据库要比映射到关系数据库表现得又好。例如,当应用程序需要打目标数据库里索一个对象时,只要实施单条查询即可找到该目标。当映射到一个关系数据库时,如果目标涵盖多对准大多涉及,那么就是必须经一个还是多独连才会检索到关联表中之数额。使用了对象数据库,对于一般复杂的目标的搜,速度虽然增长了三倍,对于复杂很高之对象的探寻,例如多针对多关系,搜索的进度则增长了三十倍增。而于集合的汇和递归联系,检索的速发出或增长五十倍。

因需要的生成,快速改进以

今日,商业进程、结构与利用要求的转变的快慢令适应变化之能力转移得极为重要。对象关联映射和外适用于刚性存储结构的措施,让别变得艰难。而Versant对象数据库极大的晋升了您的运满足当下与前途底商需求的能力。

入股回报率

当用户遇到了复杂的靶子模型和生之数据集,对象数据库就是首选的化解方案。对象数据库重点的助益在,它能缩小代码的规模,降低研发资金,缩短上市之岁月,减少或向没管理的求与降低采购硬件和服务器软件许可证之财力。性能上的优势还好大大降低高负载动作下所吃的工本。大型的关系数据库成本高非常昂贵,还需昂贵之硬件支撑

官方网站
http://www.versant.com/index.aspx

14、Neo4j

介绍

Neo4j是一个嵌入式,基于磁盘的,支持完全事务之Java持久化引擎,它以图像被若无是发明中储存数据。Neo4j提供了广阔可扩展性,在平台机器上足处理数十亿节点/关系/属性之图像,可以扩大至多令机器并行运行。相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数码,这些多少变动很快,需要数的查询——在关系数据库中,这些查询会招致大气的表连接,因此会面产生性能上的问题。Neo4j重点解决了具有大量一连的民俗RDBMS在查询时起的习性衰退问题。通过围绕图形进行数据建模,Neo4j会以同一之快遍历节点和限度,其遍历速度及整合图形的数据量没有任何关系。此外,Neo4j还提供了那个快之图形算法、推荐系统与OLAP风格的分析,而当时一切以当下的RDBMS系统中都是无力回天兑现的。

Neo是一个大网——面向网络的数据库——也就是说,它是一个嵌入式的、基于磁盘的、具备全的作业特性的Java持久化引擎,但是她将结构化数据存储在网及要无是表中。网络(从数学角度叫做图)是一个心灵手巧的数据结构,可以以更加快和飞跃的开销模式。

你得将Neo看作是一个强性能的图引擎,该引擎具有成熟和硬朗的数据库的享有特性。程序员工作于一个面向对象的、灵活的网络布局下而未是从严、静态的表中——但是他们可以享用及所有全的事务特性、企业级的数据库的有着好处。

由采用了“面向网络的数据库”,人们对Neo充满了奇。在该模型中,以“节点空间”来表达领域数据——相对于人情的型表、行与排来说,节点空间是过剩节点、关系和属性(键值对)构成的网络。关系是率先层对象,可以由属性来诠释,而性则表明了节点交互的上下文。网络模型完美的配合了本来面目上便是延续关系的问题域,例如语义Web应用。Neo的创作者发现连续与结构化数据并无吻合传统的关系数据库模型:

  1.目标关系之莫兼容使得把面向对象的“圆的靶子”挤至面向关系之“方的阐明”中凡那么的紧巴巴及急难,而这整个是好避免的。

  2.关系模型静态、刚性、不灵活的真面目使得改schemas以满足不断变化的工作需求是杀艰难的。由于同样的故,当开发小组想用敏捷软件开发时,数据库经常拖后腿。

  3.关联模型很不吻合发挥半结构化的数据NoSQL——而业界的分析家和研究者还认为半结构化数据是信保管中之生一个重点。

  4.网络是均等栽死快捷之多少存储结构。人脑是一个宏大的大网,万维网也如出一辙盘造成网状,这些还不是巧合。关系模型可以表达面向网络的数,但是当遍历网络并抽取信息之力及涉模型是老弱的。

虽Neo是一个较新的开源项目,但它们都在具有1亿差不多单节点、关系与总体性之制品面临获取了用,并且能够满足公司的健壮性和特性的需求:

意支持JTA和JTS、2PC分布式ACID事务、可安排的断级别和广泛、可测试的事情恢复。这些不仅是口头上的应允:Neo已经采用在强要的24/7条件下超过3年了。它是熟、健壮的,完全达到了部署的要诀。

特性

Neo4j是一个用Java实现、完全兼容ACID的图数据库。数据为同等种对图形网络展开了优化的格式保存在磁盘上。Neo4j的基础是同一种最快之图片引擎,具有数据库产品要的具有特性,如恢复、两品级提交、符合XA等。

Neo4j既可看做无需任何保管出的内嵌数据库使用;也得看成单身的服务器使用,在这种利用状况下,它提供了大面积采取的REST接口,能够方便地合到因PHP、.NET和JavaScript的条件里。但本文的重大要在于讨论Neo4j的直使用。

Neo4j的卓越数据特征:

•数据结构不是必须的,甚至好完全没,这足以简化模式改变和推迟数据迁移。

•可以好建模常见的扑朔迷离领域数据集,如CMS里之访问控制可吃砌模成细粒度的访问控制表,类对象数据库的用例、TripleStores以及另外例子。

•典型以的世界要语义网和RDF、LinkedData、GIS、基因分析、社交网络数据建模、深度推荐算法和任何领域。

绕水源,Neo4j提供了相同组而卜的零件。其中起支持通过长型构造图结构、SAIL

  • 同一种植SparQL兼容的RDF TripleStore实现或雷同组公共图形算法的兑现。

高性能?

要为有当的特性基准数据十分不便,因为她和底层的硬件、使用的数据集和另因素关联好挺。自适应规模之Neo4j无需任何附加的办事就是得以拍卖包含数十亿节点、关系与总体性之希冀。它的宣读性能好生自在地实现各级毫秒(大约每秒1-2百万遍历步骤)遍历2000关联,这了是事务性的,每个线程都起热缓存。使用最缺乏路径计算,Neo4j在处理包含数千个节点的小型图时,甚至比MySQL快1000倍,随着图规模的充实,差距也更为老。

立即中间的缘故在,在Neo4j里,图遍历执行之进度是常数,跟图的局面大小无关。不象在RDBMS里常见的合操作那样,这里不涉及降低性能的集聚操作。Neo4j以同等种延迟风格遍历图

节点和涉仅仅生以结果迭代器需要拜访它们的早晚才见面让遍历并回到,对于周边深度遍历而言,这极大地提高了性能。

描绘速度和文件系统的查找时间和硬件来大特别关系。Ext3文件系统和SSD磁盘是是的做,这会导致每秒大约100,000描写作业操作。

官方网站
http://neo4j.org/

15、BaseX

介绍

BaseX 是一个XML数据库,用来存储紧缩的XML数据,提供了迅速之 XPath 和
XQuery 的贯彻,还连一个前端操作界面。

特性

BaseX一个比较显著地长是来矣GUI,界面被来查询窗口,可采取XQuery查询相关数据库被的XML文件;也发出会动态展示xml文件层次和节点关系的觊觎。但我深感也便应声点便宜了,编程时和GUI无关了。

与Xindice相比,BaseX更会支撑大型XML文档的贮存,而Xindice对大型xml没有怪好的支撑,为治本中小型文档的聚合而计划。

BaseX 是一个XML数据库,用来囤积紧缩的XML数据,提供了迅速之 XPath 和
XQuery 的实现,还包一个前端操作界面。

官方网站
http://basex.org/

版权声明:本文为博主原创文章,未经博主允许不得转载。

网站地图xml地图