25+个可供选择的开源数据库引擎

来源:互联网 发布:淘宝买大麻暗语2016 编辑:程序博客网 时间:2024/05/01 12:31

网上收到一篇关于开源数据的文章,最近想看看一些开源数据库的源代码,所以就索性翻译下了。文章是2年前的。不过看下来很多东西都没有过时,还算可以:

http://www.webresourcesdepot.com/25-alternative-open-source-databases-engines/

 

大多数的程序员都有自己青睐的数据库,而且一般而言都是有一定的使用经验的。

 

可能是下面某一种比较流行的数据库:

  • MySQL
  • PostgreSQL
  • MSSQL
  • SQLite
  • MS Access

 

或者是其它更简单的存储方式:XMLtext等等。

 

为什么上面那些数据库很受欢迎呢?因为它们被频繁的使用,并且有很好的文档,背后又有很多不错的论坛支持。而且网上也有很多不错的cms能和他们进行很不错的结合。同时很容易使用,并且也有很多主机公司提供服务等等。

 

但是现在也有很多不错的数据库变的日益流行起来了。甚至很多都优于现在你所使用的数据库。

 

下面就介绍25+种的数据库,也许你下个项目就会考虑使用他们:

 

一、MongoDBhttp://www.mongodb.org/

它是一个具有高效率、具有伸缩性、自由模式(schema-free)、面向文档(类似json之类的数据模式)的开源数据库。

现今有很多流行的编程语言,如“PHP,Python,Perl, Ruby, JavaScript, C++”等,都有了相应的驱动。

 

二、Hypertablehttp://www.hypertable.org/

Hypertable是一个具有高效的分布式的数据存储系统。被用来设计支持那些需要很大效率,伸缩性,及可靠性的应用。它是在GoogleBigTable及关注大的伸缩性数据集合而设计出来的。

 

三、ApacheCouchDBhttp://couchdb.apache.org/)

一个面向文档的数据库,可以使用流行的JavaScriptMapReduce(映射简化?)中被查询、索引的。CouchDB提供一个RESTfulJSON接口,能够在任何环境中通过HTTP请求。

 

四、Neo4jhttp://neo4j.org/

这是一个嵌入式的,基于硬盘并且支持完整的java事务引擎。它是将数据存储在图中,而不是一般意义上的表中。Neo4j具有很不错的伸缩性。它可以在一台机器或者多台组合的方式处理数以万计的节点/关系/属性。

 

五、Riakhttp://riak.basho.com/

Riak在处理及结合web应用的时候是理想的数据库:

  1. 分散的Key-value存储
  2. 理想的映射/简化引擎
  3. 友好的HTTP/JSON查询接口

 

六、Oracle Berkeley DBhttp://www.oracle.com/technology/products/berkeley-db/index.html

它是一种可以让开发人员快速的、稳定的、本地持久无需管理员的数据库引擎。Oracle Berkeley DB是一个能够直接连接到你应用里面的库。并且能够让你使用简单的函数调用远程服务而具有更好的工作效能。

 

七、Apache Cassandrahttp://incubator.apache.org/cassandra/

Cassandra是一个高伸缩性的第二代分布式数据库,很多著名的公司都在使用它,像FacebookDiggTwitterCisco等等。

它的目标是为存储数据提供一个可持续,具有容错性并且高可用性的环境。

 

八、Memcachedhttp://memcached.org/

memcached是将从数据库中获取,API获取或者页面渲染获取到的数据以键值对方式小块数据(字符串、对象等)存储在内存中的方式存储数据。

一般使用在加速动态web应用,以增加数据库数据缓存。

 

九、Firebirdhttp://www.firebirdsql.org/

Firebird可以运行在Linux上,windows及各种Unix平台上的关系数据库。它提供高性能及支持存储过程及触发器的强有力的语言支持。

 

十、Redishttp://code.google.com/p/redis/

redis是使用c语言编写的高级快速的键值对方式存储的数据库。它可以像memcached一样使用,位于传统数据库前端作为缓存,同时也可以直接使用。

它是被很多语言所支持的。像很多流行的项目,如“GitHubEngineYard”等等都是使用它的。

如现有的PHP客户端Rediska,就可以用来管理Redis数据库。

 

十一、Hbasehttp://hadoop.apache.org/hbase/

Hbase是一种分布式及(多面向存储?)column-oriented store的,且被称为Hadoop数据库。

此项目的目标是能够处理如“上亿条,成千上万行”数据的非常大的表。

它具有平滑的web服务网关,能够支持xmlProtobuf及二进制数据编码控制。

 

十二、Keyspacehttp://scalien.com/keyspace/

它是具有持续性复制、容错,以键值对方式运行在window操作系统之上的数据库。

Keyspace通过屏蔽服务器/网络错误及单个的高可用性服务的方式来确保高使用性。

 

十三、4Storehttp://4store.org/

它是一个数据库引擎并且提供数据库查询及RDF数据。

它是使用ANSI C99语言编写,并设计运行在类似UNIX操作系统之上,提供高可用性、稳定性、及伸缩性。

 

十四、MariaDBhttp://askmonty.org/wiki/index.php/MariaDB

MariaDB兼容及替换了MysqlServer的数据库。

它基本囊括了大多数的开源存储引擎及Maria存储引擎。

 

十五、Drizzlehttps://launchpad.net/drizzle

它是属于Mysql的一个分支,主要专注于优化云服务及网络应用的可靠性数据库。

 

十六、HyperSQLhttp://hsqldb.org/

Hypersql是使用java语言编写的关系型数据库。

它提供一个小型却快速的数据库引擎,可以存储在内存、硬盘,并且提供嵌入式或者服务端方式。

 

十七、MonetDBhttp://monetdb.cwi.nl/

MonetDB是为了使用数据挖掘、OLAPGISXML查询、文本、多媒体等高性能应用而设计的数据库系统。

 

十八、Perserverehttp://www.persvr.org/

Perservere是个对象存储引擎及应用服务器(运行在java/Rhino),并且能够提供动态JSON数据存储以便开发基于javascript的网络富客户端应用。

 

十九、eXist-dbhttp://exist-db.org/

eXist-db是使用xml技术构建。依照xml数据模型及高效特征,并且基于XQuery查询索引方式来存储xml数据的。

 

二十、其它数据库

 

  • Gladius (PHP flat-file     database)
  • CloudStore
  • OpenQM (multivalue     database)
  • ScarletDME (multivalue     database)
  • SmallSQL (Java Desktop     SQL Database Engine)
  • LucidDB
  • HyperGraphDB (graph     database)
  • InfoGrid (graph database)
  • Apache Derby
  • hamsterdb
  • H2 Databasejava写的)
  • EyeDB
  • txtSQL(网站打不开了!)
  • db4o(貌似不开发了?)
  • Tokyo Cabinet
  • Project Voldemort

 

 

译者补充:

看完文章,记得应该还有一些其它有名的存储数据库:

http://www.nextdb.net/(为开发者写的关系型数据库)

http://www.erlang.org/doc/apps/mnesia/Erlang写的?)

http://www.cubrid.org/(貌似有公司维护?)

http://www.raima.com/in-memory-database/(内存数据库)

 

其实还有很多不错的开源,用不同的语言写的,不过实现方式是一方面,更重要的是里面的设计思想很重要。

原创粉丝点击