说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

盘点2013:21款最优秀的开源数据库

HTML文档下载 WORD文档下载 PDF文档下载
几乎所有软件项目的开发都需要数据库的支持,目前,随着开源技术的迅速发展,越来越多的数据供应商选择开源数据库,为开源事业添砖加瓦。

作为一名软件开发人员或DBA,其中一份必不可少的工作就是与数据库打交道,比如MS SQL服务器、MySQL、Oracle、PostgreSQL、MongoDB等等。众所周知,其中MySQL是目前使用最广泛最好的免费开源数据库,此外,还有一些你不知道或者没用过但又非常出色的开源数据库,例如 PostgreSQL、 MongoDB、HBase、Cassandra、Couchbase、Neo4j、Riak、Redis、Firebird 等。

在本文,作者总共总结了21个最优秀的开源数据库,不妨让我们一起来看下吧。

1.MySQL

MySQL是一个开源的关系型数据库管理系统,为甲骨文公司产品。支持多种存储引擎、集群、全文 索引、支持多线程、充分利用CPU资源、支持多用户等其它许多非常专业的功能。

MySQL由于性能高、成本低、可靠性好已经成为最流行的开源数据库,并且被广泛应用在Web应用程序以及其它中小型项目上。从WordPress 到Movable Type都把MySQL作为默认的数据库。此外,自甲骨文收购MySQL以后,有将MySQL闭源的潜在风险,因此社区采用分支的方式避开这种风险,开发并运营着完全兼容MySQL的MariaDB数据库。

2.PostgreSQL

PostgreSQL可以简称为“postgres”,是一款对象-关系型数据库管理系统,PostgreSQL采用的是比较 经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式。PostgreSQL拥有非常完美的驱动,并支持标准的ANSI-SQL和扩展功能,在许多方面都要超过MySQL。

PostgreSQL是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一一种自由软件的数据库管理系统。许多云服务提供商比如Heroku等,都用PostgreSQL作为他们的RDBMS存储。

缺点方面,PostgreSQL还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能等提高数据库性能的机制等。

3.MongoDB

MongoDB是一款开源、面向文档并且也是当下人气最旺的NoSQL数据库,它也是一款介于关系数据 库和非关系数据库之间的产品。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。还具有高性能、易部署、易使用,存储数据非常方便等特点。

4.Hadoop (HBase)

Hadoop (HBase)是一个开源的、基于列存储模型的分布式数据库,它是Apache Hadoop项目的一部分,开发语言为Java。

HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是 HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸缩、并建立在关系模型基础上的分布式数据库。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,用以存储大规模结构化数据。HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

5.Apache Cassandra

Apache Cassandra是一套开源分布式NoSQL数据库系统,类似于Google的BigTable。它最初由 Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。在2008年,Facebook将其开源。

Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其它节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。

6.Couchbase

Couchbase是一款基于JSON模型的文档数据库,它是CouchDB的一个fork,能够实现水平伸缩、并且对于数据的读写都能提供低延迟访问。Couchbase要比CouchDB功能更加全面,并且Couchbase产品包含了CouchDB的一个副本。Couchbase产品向CouchDB添加了缓存、集群等功能。此外,Couchbase还包含一些不错的集成功能,对于数据存储系统来说,Couchbase是一个不错的选择。

7.Neo4j

Neo4j是一款开源的高性能NoSQL图数据库,它使用图(graph)相关的概念来描述数据模型,把 数据保存为图中的节点以及节点之间的关系。支持ACID事务(原子性、独立性、持久性和一致性)。

在现实中,很多数据都是用图来表达的,比如社交网络中人与人的关系、地图数据、或是基因信息等等。Neo4j中最基本的概念是节点(node)和关系(relationship)。节点表示实体,在两个节点之间,可以有不同的关系。

8.Riak

Riak是基于Erlang和C语言开发,Riak是Amazon的高可用性键值存储库,用Erlang编写且基于 Dynamo,是一种高度可扩展的分布式数据存储。Riak没有主节点的概念,在处理故障方面更具灵活性。在开源版本中,不包含SNMP分布式模型。

9.Redis

Redis是一个开源、支持网络、基于内存、键值对存储数据库。开发者无需存储数字和字符串即可 dump整个哈希值、列表、集合以及其它复杂的结果存储,此外,Redis还提供复制/同步和持久化等功能。

Redis是一个高性能的键值对数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。

10.Firebird

Firebird是一个跨平台的关系数据库,用C和C++开发。目前能够运行在Windows、linux和各种Unix操 作系统上,可以对存储过程和触发器提供高性能和强大的语言支持。

Firebird既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。 

11.Memcached

Memcached是一套分布式的高速缓存系统,它能够用来存储各种格式的数据,包括图像、视频、文 件以及数据库检索结果等。简单地说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

由于Memcached通常只是当作高速缓存系统使用,所以使用Memcached的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新Memcached内的数据。 

12.Oracle Berkeley DB

Oracle Berkeley DB是一个高效的嵌入式数据库编程库。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统以及实时操作系统。

13.Hypertable

Hypertable是一个高性能的分布式数据存储系统,采用与Google的BigTable相似的模型。具有高性 能、可伸缩、可扩展,并且主要集中大规模数据集。

Hypertable采用类似表的形式组织数据,但目前Hypertable并不支持关系数据库中丰富的关系属性。Hypertable将数据组织成一个多维稀疏矩阵。该矩阵中的所有行信息可以基于主键(Primary Key)进行排序。

14.Keyspace

Keyspace是一款键值对数据库存储系统,Keyspace基于Master-Slave模式,所有的写均由Master承担,并通过paxos一致传播到Slave,读可以根据基本路由到Master或Slave。因此,当Master出现宕机或不可访问时,会存在一套Master的选举机制,在keysapce中成为PaxosLease算法。

15.4store

4store是一个高效、可扩展的RDF数据库,它采用ANSI C99开发,可以同时运行超过15GT的数据查 询,使用它所开发的Web应用程序可同时支持上千人访问。

16.MariaDB

MariaDB数据库管理系统是MySQL的一个分支,完全兼容MySQL,包括API和命令行,使之能轻松成 为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。另外又添加了一些功能,以支持本地的非阻塞操作和进度报告。这意味着,所有使用MySQL的连接器、库和应用程序也将会在MariaDB下工作。

MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,正如上文所提到的,由于担心甲骨文存在将MySQL闭源的风险,目前已有许多公司将项目移到MariaDB上,比如维基百科、谷歌等。

17.Drizzle

Drizzle是一款免费/开源的关系型数据库管理系统,基于C++开发,它是MySQL 6.0的一个分支。和 MySQL一样,Drizzle也是采用经典的C/S(客户端/服务端)架构模式,其主要专注于为云端应用提供一个可靠稳定的数据库。

18.HyperSQL

HyperSQL是一款采用Java编写的SQL关系型数据库引擎,其核心是多线程,支持双向锁和MVCC, 并且为基于内存和磁盘的表提供小而快速的数据库引擎,支持嵌入式/服务器模式。同时,它还拥有多种工具,比如命令行SQL工具、GUI查询应用程序等。

19.MonetDB

MonetDB是一款开源的、面向列的数据库管理系统,其专门为数据挖掘、OLAP、GIS、XML查询、 文本及多媒体检索提供高性能应用。

MonetDB数据库管理系统包含MonetDB/SQL、MonetDB/GIS、MonetDB服务器。其还具有自动和自调优索引、运行时查询优化以及模块化软件架构。

20.Persevere

Persevere是一款对象存储引擎和应用服务器(基于Java/Rhino),它提供一个服务器JavaScript环境来实现动态JSON数据的持久化数据存储。支持通过标准JSON HTTP/REST Web接口来创建、读取、更新和删除数据。

Persevere引以为自豪的是它的“schema-free”,这一特点使得它与其它数据库有很大的区别。Persevere可以让你随心所欲的增加schema。Persevere并非把分级结构的顶层称为一个domain(SimpleDB这么称呼),也不称之为文档(CouchDB这么称呼),Persevere称之为对象,它甚至可以让你创建对象的子类。如果你想违背规则,你也能坚持某些字段使用某一类型,但是这是不推荐的。Schema规则是可选的。

21.eXist-db

eXist-db是使用XML技术构建的开源XML数据库,它根据XML数据模型、功能、基于索引的XQuery进程来存储XML数据。程序通过eXist绑定的HTTP服务器与eXist交互。eXist数据库还提供了SOAP、XML-RPC 和RESTful接口,开发者可以通过这些接口向核心服务器提交XPath、XQuery和XUpdate请求。命令行和GUI客户机也是可用的。

英文来自: The Professionals Point

闪烁的标题栏 -VB资料 实现画面的各种切换方法-VB资料 实现屏幕变暗的效果 -VB资料 实现图像切换效果 -VB资料 提取Win9x拷贝的动画-VB资料 一个图像滤光处理程序-VB资料 一个用VB5.0 实现的鼠标绘图程序 用VB6.0制作画图板 用VB6设计有趣的动画场景 用VB编程绘制网格图像 用VB绘制抛物线动画曲线 用VB绘制正弦动画曲线 用VB实现“百叶窗”的图形特效 用VB实现托盘动画图标 用Visual Basic 定制BMP文件 用Visual Basic的Move方法实现动画效果 用Visual Basic与MS-Draw开发通用作图软件 在VB中获取可执行文件及Windows 95快捷方式的图标 在VB中进行各种图形切换的方法 在VB中制作可滚动的图像显示 在图片上平滑移动文字 -VB资料 VB怎样使程序的标题条闪烁? VB制作图像的Mask图 CWinInetConnection-一个封装了WinInet API函数的类 -VB资料 MODEM通讯意外处理-VB资料 MsComm 文字传输-VB资料 PING一个IP地址(向它发送一个数据包并等待回应) -VB资料 SMTP协议简介 (Simple Mail Transfer Protocol) -VB资料 VB5.0 中远程数据库的访问 VB下如何编写CRC校验程序 Visual Basic 6中发送邮件的新方法 多谢各位,为什么http://IPaddress/exchange能看到内容,但是http://IPaddress/exadmin看不到内容 数据窗口怎么获得列的个数和怎么判断列的类型为DropDownDW类型! 求助 outlook&&ie6(放分) 我写了1个ip变域名的软件,发现现在都用防火墙,根本的不到域名,能不能用dns服务器或者其他方法写代码获得? 难道真的要去请电脑技术人员来帮忙了吗?急!急!急!!! 为什么有两个连接查询变量就不行呢代码如下: Rose进行JavaOOM的超级菜问题No.1:如何设置一个类MyButton成为JButton类的子类 如何在显示汉字 有关staroffice的问题 谁能告诉我完整的正式版本Dream_controls_collection for D6的下载地址呢? 百分求解有关ODBC的问题 那位知道最好的局域网聊天软件是什么? 数据库的问题 请问PB远程备份,恢复SQL SERVER2000应该怎样实现。(备份到本地硬盘)高分赠送 VCKBASE改版了,已经重新开张了!感激我的快给分!多少不限,呵呵... 那里有FrontPage server extension下载? 我什么我的程序从数据库取不出数据 C++Builder 中有没有关于SNMP 的控件啊? if not myrecord.bof then中的BOF是什么意思啊 Sybase数据库设备存放的地方? 高分救助:300分 一個通用的聯結sql server不能運行,help me 请大虾帮忙!这个SQL语句怎么写?多谢! 求教如何将enter转换为tab? win98下如何使用命令行方式共享文件夹 请问一个关于Iterator的问题. 我想把Access数据库里的内容只保留 1 天,超过 1 天的数据自动被删掉,请问该怎样设置。 拷贝构造函数实现多态性?!!你知道吗?........... 有多少人喜欢CCTV的张越和王小丫? 请问DES的最短代码的长度是多少?急急急,多多送分! 一个关于FlexGrid与MSChart的问题 请问有没有办法把一个报表导到一个Excel中? 数据管道对象....my_pipe.dataobject="p_pipe"(已经建好的数据管道对象)为什么提示 空对象?? 好象无法调用一个动态嵌入式框架中的函数 zhq2000(俗子) 谢谢你帮忙!我还有些不明白的地方想请教一下! cmos 如何下载JDK1.3版? 在DBGrid怎样移动一行数据?高分赠送 这个问题很奇怪!关于弹出菜单。 为什么 Rs->GetFieldValue 取两个字段的时候出错,只能一次去一个字段么? 用C#如何实现在form上画一条曲线,然后用鼠标托动曲线上的某一个点,该曲线的弧度根据鼠标的移动而变化 如何选择一行数据,条件是该数据的date类型的列为空(oracle)? 强烈建议!!!! 用过MSComm的朋友看过来。 清详细介绍ActiveX 请教众英雄: 怎么用C#写一个ComboBox Web Control 谢了!to anybody1 中国共享软件注册中心的2002年2月份汇款为什么现在还没到? 请问用DELPHI的ADO挂接的VFP数据库,进行删除只能是加删除标记,如何应DELPHI彻底删? 为什么 Rs->GetFieldValue 取两个字段的时候出错,只能一次去一个字段么? 高粱熟了的拟人句 如何判断酸碱性的强弱不用ph试纸判定 碳酸氢根离子以水解还是电离为主? 高粱熟了.(改为拟人句.) 关于元素周期表的氧化性金属性稳定性酸碱性的强弱问题一直搞不懂. H2中氢元素的化合价 高粱熟了.(拟人句)帮个忙啦!2楼真是天才啊!小弟配服. 问几个有关盐的化学式!至少5个!急啊~~~ 氢元素有几种化合价最好有例子 浓硫酸和铜反应是只能体现强氧化性吗,为什么 圆柱体的侧面积怎么求?大哥们 二氧化氢中氢元素的化合价是多少 铜与浓硫酸反应现象中,哪一个证明了硫酸的强氧化性 两个圆柱体的侧面积相等,它们的什么一定相等 溴化氢中氢元素化合价 柚是酸性还是碱性 2有一个圆柱体,它的底面积与侧面积正好相等.如果这个圆柱体的底面积不变,高增加2厘米,它的表面积就增加94.2m².原来这个圆柱的表面积是多少平方厘米? 硝酸铵受热分解的2个反应(普通的和有反应条件的) 柚子是酸性还是碱性水果 元素周期表里非金属性强弱的问题如硫上面的是氧,硫右边的是氯,由于元素周期表里,向上向右非金属性都增强,那怎样判定他们氧和氯谁非金属性强呢 碳酸氢根离子的电离程度大还是水解程度大? 氢氧根中氧的化合价?是对少啊,我搅昏咯~ 秋天来了.改写成拟人句 元素周期表中非金属元素的无恙酸与含氧酸酸性强弱针对高中时期 碱式盐中的氢氧根的化合价碱式盐中氢氧根是不是中性啊 比如碱式碳酸盐怎么写 还有酸式盐中的氢呢 醋酸钠显什么性,它的电离程度和水解程度的大小比较 为什么? 怎样通过原子结构或元素周期表上看出的非金属性强弱比较硝酸、磷酸、硫酸的酸性强弱?要通过原子结构或元素周期表啊!化学必修二课本上的练习题.从元素周期表上从左到右从下到上只能 硝酸铵经过猛烈撞击后生成一氧化氮和什么?要化学方程式. 醋酸钠电离大于水解 为什么显碱性 不是应该显酸性吗 过氧化氢中氧元素和氢元素的化合价 “高粱红了.”怎么改成拟人句?按照这个格式:许多种子悄悄地露出了脑袋,探望那明媚的世界. 为什么水解大于电离,所以呈碱性? 一定条件下硝酸铵受热分解的化学方程式为5NH4NO3=2HNO3+4N2+9H2O,请用双线桥法写出,并标出电子转移数量和谁做氧化剂,谁做还原剂. 硝酸铵爆炸是机械能吗? 等体积等浓度醋酸与醋酸钠溶液混合为什电离大于水解 硝酸铵受热(或其他条件)分解产物!(希望全面一点)110 ℃时按下式分解:NH4NO3=HNO3+NH3↑ (无氧化还原反应) 在185 200 ℃,分解反应如下:NH4NO3=N2O↑+2H2O 氧化产物与还原产物物质的量 铝离子 和 硫酸根离子能共存吗?铝离子不是会水解么? 柚子是酸性还是碱性 硝酸铵受热分解方程式 在实验室中的应用 硫酸根离子和铝离子能否共存? 读者和青年文摘哪个比较好啊?有什么区别? Jazz,Rock and Roll,Western and country music are the main type of popular music.这里是西部乡村乐,还是西部音乐和乡村音乐 关于铝和硫酸根离子铝中分别加盐酸和硫酸(三者浓度质量等等都相同,铝打磨过)明显盐酸中产生气泡,而硫酸中几乎没有明显现象,很多人说是氯离子加快反应,但是硫酸中也不可能一点明显 青年文摘和读者哪个好?我是一个初中学生 觉的这两本适合这个年龄看 但不知买哪本好 各位给我看看 说说那本好 最好说详细点 有什么好听的英文歌,最好是jazz.超级好听的哦~ 柚子属于酸性还是碱性 青年文摘 读者我想给这2个杂志投同一篇文章,请问应该如何处理.文章是我原创的,还有我有想推荐的.都具体说说好么 希望大家介绍一点好听的爵士英文歌.最好是像Straight To Number One这种风格的,性感暧昧的爵士风格慢摇英文歌,不要雷死人的那种强劲版的,我很厌.由于我是新手,所以没有很多悬赏分,希望各位 圆柱体的面积该怎么求? 读者和青年文摘的文章最本质的区别是什么啊 氢氧化钙中钙元素的化合价~ 圆柱体面积怎么求 不能电离出硫酸根离子的是?1,Na2s2,Ba(OH)23,KMnO44,KCl这些哪个不能电离出硫酸根离子?为什么 讲讲 求轻爵士英文歌类似Norah Jones 的 don't know why 还有像Shelley Harland 的 In the dark,Laura Fygi的dream a Little dream 这样的,很有味道的英文歌,五六十年代的复古曲风都ok,比较抒情的~请不要复制别人的答案 圆柱体的面积,周长和 空心圆柱体,周长的求法一个空心的圆柱体,半径是10,长是12,求外面的面积.还另求圆柱体的面积,周长和空心圆柱体和空心圆柱体的求法,还有空心,但底下合着的,面积和周 知道圆柱体的侧面积咋算高? 氢氧根和氨根中各元素的化合价是多少 圆柱体面积怎么算(公式) 圆柱体的侧面积和体积计算(在线等)一个圆柱体底面半径为3厘米,侧面展开后是一个正方形,则这个圆柱体的侧面积是多少平方厘米?体积是多少立方厘米? 好听的爵士乐或英文歌把谁唱的补充下
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘