三十五個(gè)非主流開(kāi)源數(shù)據(jù)庫(kù) MongoDB領(lǐng)銜主演
幾乎每個(gè)Web開(kāi)發(fā)人員都有自己喜歡的數(shù)據(jù)庫(kù),或自己最熟悉的數(shù)據(jù)庫(kù),但最常見(jiàn)的無(wú)外乎以下幾種:
MySQL
PostgreSQL
MSSQL Server
SQLite
MS Access
或是更簡(jiǎn)單的XML,文本文件等。這些數(shù)據(jù)庫(kù)有優(yōu)秀的文檔,背后有強(qiáng)大的社區(qū)支持,大部分流行的CMS都使用了其中之一或多個(gè),它們都易于使用,大多數(shù)托管服務(wù)供應(yīng)商都提供了相應(yīng)的產(chǎn)品,因此它們的使用量很多,名氣也很大。但除了這些主流的數(shù)據(jù)庫(kù)外,還有很多其它非主流數(shù)據(jù)庫(kù)存在,其中有一些也開(kāi)始受到人們的高度重視,下面我們就一起來(lái)看看吧,注意本文只介紹開(kāi)源數(shù)據(jù)庫(kù),說(shuō)不定在下一個(gè)項(xiàng)目中,你就有嘗試它們的沖動(dòng)。
1、MongoDB
MongoDB是一款開(kāi)源,高性能,可擴(kuò)展,無(wú)模式,面向文檔(與JSON類似的數(shù)據(jù)模式)的數(shù)據(jù)庫(kù),它為時(shí)下最流行的編程語(yǔ)言提供了驅(qū)動(dòng),如PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自動(dòng)分片,跨LAN或WAN擴(kuò)展,采用Key/Value方式存儲(chǔ)數(shù)據(jù)。MongoDB服務(wù)端可運(yùn)行在Linux、Windows或OS X平臺(tái),支持32位和64位應(yīng)用。世界上最大的單詞收錄網(wǎng)站W(wǎng)ordnik就從MySQL轉(zhuǎn)向了MongoDB。
2、Hypertable
Hypertable是一款高性能分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),旨在為應(yīng)用程序提供最好的性能,可擴(kuò)展性和可靠性,它建立在Google的BigTable之上,主要面向大規(guī)模數(shù)據(jù)集應(yīng)用,其目標(biāo)是要成為世界上最好的大規(guī)模并發(fā)高性能數(shù)據(jù)庫(kù)平臺(tái)。百度目前也使用了Hypertable,也是它的贊助商。
3、Apache CouchDB
Apache CouchDB是一款面向文檔的數(shù)據(jù)庫(kù),可以使用JavaScript通過(guò)MapReduce方法進(jìn)行查詢和索引,它提供了一個(gè)RESTful JSON API,因此可以在任何環(huán)境中通過(guò)HTTP訪問(wèn),CouchDB內(nèi)置了Web管理控制臺(tái),支持通過(guò)瀏覽器管理數(shù)據(jù)庫(kù)。CouchDB使用Erlang編寫(xiě),Erlang是一種健壯的函數(shù)式編程語(yǔ)言,非常適合于構(gòu)建并發(fā)的分布式系統(tǒng),Erlang的設(shè)計(jì)非常靈活,其可伸縮性與可擴(kuò)展性都非常棒。
4、Neo4j
Neo4j是一個(gè)嵌入式,基于磁盤的,支持完整事務(wù)的Java持久化引擎,它在圖像中而不是表中存儲(chǔ)數(shù)據(jù)。Neo4j提供了大規(guī)??蓴U(kuò)展性,在一臺(tái)機(jī)器上可以處理數(shù)十億節(jié)點(diǎn)/關(guān)系/屬性的圖像,可以擴(kuò)展到多臺(tái)機(jī)器并行運(yùn)行。相對(duì)于關(guān)系數(shù)據(jù)庫(kù)來(lái)說(shuō),圖形數(shù)據(jù)庫(kù)善于處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)變化迅速,需要頻繁的查詢——在關(guān)系數(shù)據(jù)庫(kù)中,這些查詢會(huì)導(dǎo)致大量的表連接,因此會(huì)產(chǎn)生性能上的問(wèn)題。Neo4j重點(diǎn)解決了擁有大量連接的傳統(tǒng)RDBMS在查詢時(shí)出現(xiàn)的性能衰退問(wèn)題。通過(guò)圍繞圖形進(jìn)行數(shù)據(jù)建模,Neo4j會(huì)以相同的速度遍歷節(jié)點(diǎn)與邊,其遍歷速度與構(gòu)成圖形的數(shù)據(jù)量沒(méi)有任何關(guān)系。此外,Neo4j還提供了非??斓膱D形算法、推薦系統(tǒng)和OLAP風(fēng)格的分析,而這一切在目前的RDBMS系統(tǒng)中都是無(wú)法實(shí)現(xiàn)的。
5、Riak
Riak是一款非常適合于Web應(yīng)用程序的數(shù)據(jù)庫(kù),它提供了去中心化的Key/Value存儲(chǔ),靈活的map/reduce引擎和友好的HTTP/JSON查詢接口。它是一個(gè)真正的容錯(cuò)系統(tǒng),不會(huì)出現(xiàn)單點(diǎn)故障,在Riak世界中,沒(méi)有哪臺(tái)機(jī)器是特殊的或?qū)俸诵?font color="#000000">服務(wù)器,它們都是對(duì)等的。
6、Oracle Berkeley DB
Oracle Berkeley DB是一系列開(kāi)源的嵌入式數(shù)據(jù)庫(kù),使開(kāi)發(fā)人員能夠?qū)⒁粋€(gè)快速、可伸縮、具有工業(yè)級(jí)別的可靠性和可用性的事務(wù)處理數(shù)據(jù)庫(kù)引擎結(jié)合進(jìn)他們的應(yīng)用程序中。Berkeley DB最先由伯克利加州大學(xué)為了移除受到AT&T限制的程式碼,從BSD 4.3到4.4時(shí)所改寫(xiě)的軟件。Berkeley DB運(yùn)行在大多數(shù)的操作系統(tǒng)中,例如大多數(shù)的UNIX系統(tǒng), 和windows系統(tǒng),以及實(shí)時(shí)操作系統(tǒng)。
7、Apache Cassandra
Cassandra是一款高可擴(kuò)展性第二代分布式數(shù)據(jù)庫(kù),屬于混合型的非關(guān)系的數(shù)據(jù)庫(kù),類似于Google的BigTable,支持的數(shù)據(jù)結(jié)構(gòu)非常松散,類似于JSON的BJSON格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Cassandra最初由Facebook開(kāi)發(fā),后轉(zhuǎn)變成了開(kāi)源項(xiàng)目。Cassandra的主要特點(diǎn)就是它不是一個(gè)數(shù)據(jù)庫(kù),而是由一堆數(shù)據(jù)庫(kù)節(jié)點(diǎn)共同構(gòu)成的一個(gè)分布式網(wǎng)絡(luò)服務(wù),對(duì)Cassandra 的一個(gè)寫(xiě)操作,會(huì)被復(fù)制到其他節(jié)點(diǎn)上去,對(duì)Cassandra的讀操作,也會(huì)被路由到某個(gè)節(jié)點(diǎn)上面去讀取。對(duì)于一個(gè)Cassandra群集來(lái)說(shuō),擴(kuò)展性能是比較簡(jiǎn)單的事情,只管在群集里面添加節(jié)點(diǎn)就可以了。Facebook,Digg,Twitter和Cisco等大型網(wǎng)站都使用了Cassandra。
#p#
8、Memcached
Memcached是開(kāi)源的分布式cache系統(tǒng),現(xiàn)在很多的大型web應(yīng)用程序包括facebook,youtube,wikipedia,yahoo等等都在使用memcached來(lái)支持他們每天數(shù)億級(jí)的頁(yè)面訪問(wèn)。通過(guò)把cache層與他們的web架構(gòu)集成,他們的應(yīng)用程序在提高了性能的同時(shí),還大大降低了數(shù)據(jù)庫(kù)的負(fù)載。
Memcached處理的原子是每一個(gè)key/value對(duì),key會(huì)通過(guò)一個(gè)hash算法轉(zhuǎn)化成hash-key,便于查找、對(duì)比以及做到盡可能的散列。同時(shí),memcached用的是一個(gè)二級(jí)散列,通過(guò)一張大hash表來(lái)維護(hù)。
9、Firebird
Firebird是一個(gè)關(guān)系數(shù)據(jù)庫(kù),可以運(yùn)行在Linux,Windows和各種Unix平臺(tái)上,F(xiàn)irebird相對(duì)MySQL和PostgreSQL來(lái)說(shuō)比較小,這也使其可以稱得上是理想的嵌入式數(shù)據(jù)庫(kù),可用于與其它應(yīng)用程序服務(wù)器和應(yīng)用程序捆綁。Firebird具有大部分成熟數(shù)據(jù)庫(kù)所具有的功能,比如支持存儲(chǔ)過(guò)程、SQL兼容等。
10、Redis
Redis是一款快速的Key/Value數(shù)據(jù)庫(kù)引擎,它在保持鍵值數(shù)據(jù)庫(kù)簡(jiǎn)單快捷特點(diǎn)的同時(shí),又吸收了部分關(guān)系數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),從而使它的位置處于關(guān)系數(shù)據(jù)庫(kù)和鍵值數(shù)據(jù)庫(kù)之間。Redis不僅能保存Strings類型的數(shù)據(jù),還能保存Lists類型(有序)和Sets類型(無(wú)序)的數(shù)據(jù),而且還能完成排序(SORT)等高級(jí)功能,在實(shí)現(xiàn)INCR,SETNX等功能的時(shí)候,保證了其操作的原子性,除此以外,還支持主從復(fù)制等功能。Redis使用C語(yǔ)言編寫(xiě),可以想memcached那樣使用,放在傳統(tǒng)數(shù)據(jù)庫(kù)的前端,它支持許多編程語(yǔ)言,受到許多流行的項(xiàng)目使用,如GitHub和Engine Yard,有一個(gè)用PHP編寫(xiě)的客戶端叫做Rediska,專門來(lái)管理Redis數(shù)據(jù)庫(kù)。
11、HBase
HBase是一個(gè)分布式,面向列存儲(chǔ)的數(shù)據(jù)庫(kù)引擎,也可以叫做Hadoop數(shù)據(jù)庫(kù),因?yàn)樗荋adoop的子項(xiàng)目,HBase的目標(biāo)是托管數(shù)十億行,數(shù)百萬(wàn)列的大表,它提供了一個(gè)REST風(fēng)格的Web服務(wù)器網(wǎng)關(guān),支持XML,Protobuf和二進(jìn)制數(shù)據(jù)編碼選項(xiàng)。
12、Keyspace
Keyspace 是一家叫做 Scalien 的創(chuàng)業(yè)公司開(kāi)發(fā)的高可靠 key/value 存儲(chǔ)系統(tǒng),Keyspace 強(qiáng)調(diào)的技術(shù)點(diǎn)是高可靠性,有以下一些特點(diǎn):
Key/Value存儲(chǔ):一個(gè) key/value 數(shù)據(jù)存儲(chǔ)系統(tǒng),只支持一些基本操作,如:SET(key, value) 和 GET(key) 等;
分布式:多臺(tái)機(jī)器(nodes)同時(shí)存儲(chǔ)數(shù)據(jù)和狀態(tài),彼此交換消息來(lái)保持?jǐn)?shù)據(jù)一致,可視為一個(gè)完整的存儲(chǔ)系統(tǒng)。為了更可靠,Keyspace 推薦使用奇數(shù)個(gè) nodes,比如:3,5,7等;
數(shù)據(jù)一致:所有機(jī)器上的數(shù)據(jù)都是同步更新的、不用擔(dān)心得到不一致的結(jié)果,Keyspace 使用著名的 Paxos 分布式算法;
冗余:所有機(jī)器(nodes)保存相同的數(shù)據(jù),整個(gè)系統(tǒng)的存儲(chǔ)能力取決于單臺(tái)機(jī)器(node)的能力;
容錯(cuò):如果有少數(shù) nodes 出錯(cuò),比如重啟、當(dāng)機(jī)、斷網(wǎng)、網(wǎng)絡(luò)丟包等各種 fault/fail 都不影響整個(gè)系統(tǒng)的運(yùn)行;
高可靠性:容錯(cuò)、冗余等保證了 Keyspace 的可靠性。
13、4store
4store是一個(gè)容納RDF數(shù)據(jù)的數(shù)據(jù)庫(kù)存儲(chǔ)和查詢引擎,它使用ANSI C99編寫(xiě),可在類Unix系統(tǒng)上運(yùn)行,提供一個(gè)高性能,可擴(kuò)展和穩(wěn)定的平臺(tái)。4store專門為無(wú)共享集群進(jìn)行優(yōu)化,最大可支持32節(jié)點(diǎn)集群,導(dǎo)入性能最大可以達(dá)到120kT/s,它的查詢性能也相當(dāng)出眾。
14、MariaDB
MariaDB是一個(gè)向后兼容的,旨在替換MySQL數(shù)據(jù)庫(kù)的MySQL分支,它包括所有主要的開(kāi)源存儲(chǔ)引擎,另外也開(kāi)發(fā)了屬于自己的Maria存儲(chǔ)引擎。MariaDB是由原來(lái) MySQL 的作者 Michael Widenius 創(chuàng)辦的公司所開(kāi)發(fā)的免費(fèi)開(kāi)源數(shù)據(jù)庫(kù)服務(wù)器,與 MySQL 相比較,MariaDB 更強(qiáng)的地方在于:
Maria 存儲(chǔ)引擎
PBXT 存儲(chǔ)引擎
XtraDB 存儲(chǔ)引擎
FederatedX 存儲(chǔ)引擎
更快的復(fù)制查詢處理
線程池
更少的警告和bug
運(yùn)行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能測(cè)試
數(shù)據(jù)表消除
慢查詢?nèi)罩镜臄U(kuò)展統(tǒng)計(jì)
支持對(duì) Unicode 的排序
15、Drizzle
Drizzle是從MySQL衍生出來(lái)的一個(gè)數(shù)據(jù)庫(kù),但它的目的不是要取代MySQL,它的宗旨是構(gòu)建一個(gè)“更精練、更輕量、更快速”的MySQL版本,它的擴(kuò)展性和易用性與MySQL相當(dāng),但為了提高性能和擴(kuò)展性,它從原來(lái)的核心系統(tǒng)里移除了部分功能。Drizzle是一種為云和網(wǎng)絡(luò)程序進(jìn)行了特別優(yōu)化的數(shù)據(jù)庫(kù),它是為在現(xiàn)代多CPU/多核架構(gòu)上實(shí)現(xiàn)大規(guī)模并發(fā)而設(shè)計(jì)的。
16、HyperSQL
HyperSQL是用Java編寫(xiě)的一款SQL關(guān)系數(shù)據(jù)庫(kù)引擎,它的核心完全是多線程的,支持雙向鎖和MVCC(多版本并發(fā)控制),幾乎完整支持ANSI-92 SQL,支持常見(jiàn)數(shù)據(jù)類型,最新版本增加了對(duì)BLOB和CLOB數(shù)據(jù)的支持,最高支持達(dá)64T的數(shù)據(jù)量。同時(shí),HyperSQL也是一個(gè)不錯(cuò)的嵌入式數(shù)據(jù)庫(kù)。
#p#
17、MonetDB
MonetDB是一個(gè)高性能數(shù)據(jù)庫(kù)引擎,主要用在數(shù)據(jù)挖掘,OLAP,GIS,XML Query,文本和多媒體檢索等領(lǐng)域。MonetDB對(duì)DBMS的各個(gè)層都進(jìn)行創(chuàng)新設(shè)計(jì),如基于垂直分片的存儲(chǔ)層,為現(xiàn)代CPU優(yōu)化的查詢執(zhí)行架構(gòu),自動(dòng)和自助調(diào)整索引,運(yùn)行時(shí)查詢優(yōu)化,以及模塊化的軟件架構(gòu)。MonetDB/SQL是MonetDB提供的關(guān)系數(shù)據(jù)庫(kù)解決方案,MonetDB/XQuery是XML數(shù)據(jù)庫(kù)解決方案,MonetDB Server是MonetDB的多模型數(shù)據(jù)庫(kù)服務(wù)器。
18、Persevere
Persevere 是針對(duì)Javascript設(shè)計(jì)的基于REST的JSON數(shù)據(jù)庫(kù),分布式計(jì)算,持久對(duì)象映射的框架,提供獨(dú)立的web服務(wù)器,主要用于設(shè)計(jì)富客戶端應(yīng)用,可以用在任何框架和客戶端上。Persevere Server是一個(gè)基于Java/Rhino的對(duì)象存儲(chǔ)引擎,在交互式的客戶端JavaScript環(huán)境中提供持久性的JSON數(shù)據(jù)格式。
19、eXist-db
eXist-db是使用XML技術(shù)構(gòu)建的數(shù)據(jù)庫(kù)存儲(chǔ)引擎,它根據(jù)XML數(shù)據(jù)模型存儲(chǔ)XML數(shù)據(jù),提供高效的,基于索引的XQuery查詢。eXist-db支持許多Web技術(shù)標(biāo)準(zhǔn),使得它非常適合Web應(yīng)用程序開(kāi)發(fā):
XQuery 1.0 / XPath 2.0 / XSLT 1.0 (使用pache Xalan)或XSLT 2.0
HTTP接口:REST,WebDAV,SOAP,XMLRPC,Atom發(fā)布協(xié)議
XML數(shù)據(jù)庫(kù)規(guī)范:XMLDB,Xupdate,XQuery更新擴(kuò)展
最新的1.4版本還增加了基于Apache Lucene的全文索引,輕量級(jí)URL重寫(xiě)和MVC框架,以及對(duì)XProc的支持。eXist-db與XQuery標(biāo)準(zhǔn)高度兼容(目前XQTS的得分是99.4%)。
20、Gladius
Gladius是用純PHP編寫(xiě)的平面文件數(shù)據(jù)庫(kù)引擎,它的SQL語(yǔ)法與SQL92的一個(gè)子集兼容,它捆綁了一個(gè)輕量級(jí)的adoDB驅(qū)動(dòng)。
21、CloudStore
CloudStore(以前叫做Kosmos文件系統(tǒng))是一個(gè)開(kāi)源的高性能分布式文件系統(tǒng),它是用C++編寫(xiě)的,CloudStore可以和Hadoop以及Hypertable集成,這樣就允許應(yīng)用程序構(gòu)建在那些系統(tǒng)上,而底層數(shù)據(jù)存儲(chǔ)無(wú)縫地使用CloudStore。CloudStore支持Linux和Solaris,主要用來(lái)存儲(chǔ)Web日志和Web爬行數(shù)據(jù)。
22、OpenQM
OpenQM是唯一一款同時(shí)有商業(yè)支持和免費(fèi)的開(kāi)源多值數(shù)據(jù)庫(kù),基于GPL協(xié)議發(fā)布,多值數(shù)據(jù)庫(kù)對(duì)NoSQL運(yùn)動(dòng)起到了推動(dòng)作用,它自身也因速度快,體積小,比關(guān)系數(shù)據(jù)庫(kù)便宜而很快得到了認(rèn)可。名稱OpenQM中的Open表示開(kāi)源版本,QM表示商業(yè)閉源QM數(shù)據(jù)庫(kù)。商業(yè)版本支持Windows,Linux(RedHat,F(xiàn)edora,Debian,Ubuntu),F(xiàn)reeBSD,Mac OS X和Windows Mobile,其列表價(jià)格還不到其它多值產(chǎn)品的1/5,商業(yè)版本還包括一個(gè)GUI管理界面和終端模擬器,開(kāi)源版本僅包括核心多值數(shù)據(jù)庫(kù)引擎,主要是為開(kāi)發(fā)人員準(zhǔn)備的。
23、ScarletDME
ScarletDME也是一個(gè)開(kāi)源多值數(shù)據(jù)庫(kù),它是OpenQM的社區(qū)分支版,最初由Ladybridge開(kāi)發(fā),這個(gè)項(xiàng)目創(chuàng)立于2008年11月28日,它既在獨(dú)立開(kāi)發(fā)自己的功能,也在為OpenQM貢獻(xiàn)代碼。這個(gè)項(xiàng)目最初的名字叫做Ladybridges GPL OpenQM,現(xiàn)在正式改為ScarletDME,其中的DME是Data Management Environment(數(shù)據(jù)管理環(huán)境)的首字母縮寫(xiě)。
24、SmallSQL
SmallSQL是一個(gè)100%純Java編寫(xiě)的輕量級(jí)數(shù)據(jù)庫(kù),一般用于嵌入式領(lǐng)域,兼容SQL 99標(biāo)準(zhǔn),支持JDBC 3.0 API,定位于高端Java桌面SQL數(shù)據(jù)庫(kù)。支持所有能運(yùn)行Java的平臺(tái),可直接嵌入到應(yīng)用程序中。不過(guò)它也有一些不足,如沒(méi)有網(wǎng)絡(luò)接口,必須安裝Java運(yùn)行時(shí),同一時(shí)間不能在多個(gè)應(yīng)用程序之間共享數(shù)據(jù)庫(kù),沒(méi)有用戶管理。
25、LucidDB
LucidDB是唯一一款專注于數(shù)據(jù)倉(cāng)庫(kù)和商務(wù)智能的開(kāi)源RDBMS,它使用了列存儲(chǔ)架構(gòu),支持位圖索引,哈希連接/聚合和頁(yè)面級(jí)多版本,大部分?jǐn)?shù)據(jù)庫(kù)最初都注重事務(wù)處理能力,而分析功能都是后來(lái)才加上去的。相反,LucidDB中的所有組件從一開(kāi)始就是為滿足靈活的需求,高性能數(shù)據(jù)集成和大規(guī)模數(shù)據(jù)查詢而設(shè)計(jì)的,此外,其架構(gòu)設(shè)計(jì)徹底從用戶出發(fā),操作簡(jiǎn)單,完全無(wú)需DBA。
LucidDB對(duì)硬件要求也極低,即使不搭建集群環(huán)境,在單一的Linux或Windows服務(wù)器上也能獲得極好的性能。最新版本還加入了對(duì)Mac OS X和Windows 64位的支持,官方網(wǎng)站上的文檔和教程也非常豐富,非常值得你體驗(yàn)一下。
26、HyperGraphDB
HyperGraphDB是一種通用的,可擴(kuò)展的,可移植的,分布式,嵌入式和開(kāi)源數(shù)據(jù)存儲(chǔ)機(jī)制,它是一個(gè)圖形數(shù)據(jù)庫(kù),專門為人工智能和語(yǔ)義Web項(xiàng)目而設(shè)計(jì),它也可用于任意規(guī)模的嵌入式面向?qū)ο蟮臄?shù)據(jù)庫(kù)。正如其名,HyperGraphDB是用來(lái)存儲(chǔ)超圖的,但它也屬于一般圖形數(shù)據(jù)庫(kù)家族,作為一個(gè)圖形數(shù)據(jù)庫(kù),它不施加任何限制,相比其他圖形數(shù)據(jù)庫(kù)它的功能更豐富。
HyperGraphDB非常穩(wěn)定,已經(jīng)應(yīng)用在多個(gè)生產(chǎn)環(huán)境,包括一個(gè)搜索引擎和Seco scripting IDE。它支持*nix和Windows平臺(tái),需要Java 5+。
27、InfoGrid
InfoGrid是一個(gè)互聯(lián)網(wǎng)圖形數(shù)據(jù)庫(kù),它提供了許多額外的組件,使得在圖像基礎(chǔ)上開(kāi)發(fā)RESTful Web應(yīng)用程序變得更加容易。InfoGrid是開(kāi)源的,包括一系列項(xiàng)目:
InfoGrid圖形數(shù)據(jù)庫(kù)項(xiàng)目 – InfoGrid的心臟GraphDatabase,可以獨(dú)立使用,也可以附加到其它InfoGrid項(xiàng)目。
InfoGrid圖形數(shù)據(jù)庫(kù)網(wǎng)格項(xiàng)目 – 在GraphDatabase基礎(chǔ)上增加了復(fù)制協(xié)議,因此多個(gè)分布式GraphDatabase就可以在一個(gè)非常大的圖像管理環(huán)境中協(xié)作。
InfoGrid存儲(chǔ)項(xiàng)目 –象SQL數(shù)據(jù)庫(kù)和分布式NoSQL哈希表那樣,為存儲(chǔ)技術(shù)提供一個(gè)抽象的通用接口,這樣InfoGrid GraphDatabase就可以使用任何存儲(chǔ)技術(shù)持久化數(shù)據(jù)。
InfoGrid用戶接口項(xiàng)目 – 將GraphDatabase中的內(nèi)容以REST風(fēng)格映射成瀏覽器可訪問(wèn)的URL。
InfoGrid輕量級(jí)身份識(shí)別項(xiàng)目 – 實(shí)現(xiàn)以用戶為中心的身份識(shí)別技術(shù),如LID和OpenID。
InfoGrid模型庫(kù)項(xiàng)目 – 定義一個(gè)可復(fù)用對(duì)象模型庫(kù),作為InfoGrid應(yīng)用程序的模式使用。
InfoGrid Probe項(xiàng)目 – 實(shí)現(xiàn)Probe框架,它允許開(kāi)發(fā)人員將任何互聯(lián)網(wǎng)上的數(shù)據(jù)源當(dāng)作一個(gè)圖像對(duì)象看待。
InfoGrid Utilities項(xiàng)目 – 收集InfoGrid使用的常見(jiàn)對(duì)象框架和實(shí)用代碼。
28、Apache Derby
Apache Derby是Apache DB的子項(xiàng)目,它完全用Java編寫(xiě),是一個(gè)開(kāi)源關(guān)系數(shù)據(jù)庫(kù),它的體積非常小,基礎(chǔ)引擎加上JDBC驅(qū)動(dòng)只有2.6MB,它支持SQL標(biāo)準(zhǔn),它提供了一個(gè)嵌入式JDBC驅(qū)動(dòng),因此可以嵌入到任何基于Java的應(yīng)用程序中,Derby也支持常見(jiàn)的客戶端/服務(wù)器模式,它也易于安裝和使用。
29、hamsterdb
Hamsterdb是一個(gè)輕量級(jí)嵌入式NoSQL Key/Value存儲(chǔ)引擎,它已經(jīng)有5年歷史,現(xiàn)在它的開(kāi)發(fā)重點(diǎn)放在易用性,高性能,穩(wěn)定性和可擴(kuò)展性上。Hamsterdb支持事務(wù)(同一時(shí)間只能處理一個(gè)事務(wù)),支持內(nèi)存數(shù)據(jù)庫(kù),支持基于HTTP服務(wù)器的嵌入式遠(yuǎn)程數(shù)據(jù)庫(kù),支持日志/恢復(fù),AES加密,基于zlib的壓縮,支持C++,Python,.NET和Java編程語(yǔ)言。
30、H2 Database
H2 Database是一個(gè)開(kāi)源的Java數(shù)據(jù)庫(kù),它的速度很快,包括JDBC API,支持嵌入式和服務(wù)器模式,內(nèi)存數(shù)據(jù)庫(kù),提供了一個(gè)基于瀏覽器的控制臺(tái)程序,它的體積也非常小,只有一個(gè)大小約1MB的jar文件,它還支持ODBC驅(qū)動(dòng)和全文搜索。
31、EyeDB
EyeDB是一款基于ODMG 3規(guī)范的面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng),為C++和Java提供了編程接口,它功能非常強(qiáng)大,并且成熟,穩(wěn)定和安全,實(shí)際上,它起源于1992年的Genome View項(xiàng)目,1994年又進(jìn)行了重寫(xiě),廣泛用于生物信息項(xiàng)目。
32、txtSQL
txtSQL是一個(gè)面向?qū)ο蟮钠矫嫖募?shù)據(jù)庫(kù)管理系統(tǒng),它使用PHP編寫(xiě),支持對(duì)普通文本文件的操作,雖然是一個(gè)文本數(shù)據(jù)庫(kù),但同樣支持SQL的一個(gè)子集,并且執(zhí)行效率非常高,txtSQL使用文件系統(tǒng)的方法與MySQL的表和數(shù)據(jù)庫(kù)原理類似,它有一個(gè)類似于phpMyAdmin管理界面。
33、db4o
db4o是一個(gè)面向?qū)ο蟮拈_(kāi)源數(shù)據(jù)庫(kù),允許Java和.NET開(kāi)發(fā)人員用一行代碼存儲(chǔ)和檢索任何應(yīng)用程序?qū)ο螅瑹o(wú)需預(yù)定義或維護(hù)一個(gè)獨(dú)立的,僵化的數(shù)據(jù)模型,因?yàn)槟P同F(xiàn)在是由db4o根據(jù)需要自動(dòng)創(chuàng)建和更新的。db4o成功的秘密是因?yàn)樗囊子眯裕鸀镴ava和.NET設(shè)計(jì),存儲(chǔ)數(shù)據(jù)對(duì)象的方法直接在應(yīng)用程序中定義,因此db4o很容易集成到應(yīng)用程序中,由于只需要一行代碼,因此執(zhí)行效率非常高。
34、Tokyo Cabinet
Tokyo Cabinet是一個(gè)Kay/Value型數(shù)據(jù)庫(kù),每個(gè)Key和Value的長(zhǎng)度都可以不同,Kay和Value既可以是二進(jìn)制數(shù)據(jù),也可以是字符串,無(wú)數(shù)據(jù)表和數(shù)據(jù)類型的概念,記錄是以哈希表、B+樹(shù)和固定長(zhǎng)度數(shù)組形式組織的。Tokyo Cabinet具有以下優(yōu)點(diǎn):
空間利用率高 – 數(shù)據(jù)文件尺寸更小;
執(zhí)行效率高 – 更快的處理速度;
并發(fā)性能好 – 在多線程環(huán)境性能更好;
改善的可用性 – 簡(jiǎn)化的API;
改善的可靠性 – 即使在發(fā)生災(zāi)難的情況下,數(shù)據(jù)文件也不會(huì)損壞;
支持64位架構(gòu) – 支持海量的存儲(chǔ)空間和巨型數(shù)據(jù)庫(kù)文件。
Tokyo Cabinet是用C語(yǔ)言編寫(xiě)的,為C,Perl,Ruby,Java和Lua提供了API。
35、Voldemort項(xiàng)目
Voldemort是一個(gè)分布式Key/Value存儲(chǔ)系統(tǒng),它具有以下特點(diǎn):
數(shù)據(jù)自動(dòng)在多個(gè)服務(wù)器之間復(fù)制;
數(shù)據(jù)自動(dòng)分區(qū),因此每個(gè)服務(wù)器只包括整體數(shù)據(jù)的一個(gè)子集;
服務(wù)器故障處理是透明的;
支持插入式序列化,允許豐富的Key和Value類型,包括列表和元組,也可以集成常見(jiàn)的序列化框架,如Protocol Buffers,Thrift,Avro和Java Serialization
數(shù)據(jù)項(xiàng)支持版本化,即使在故障情況下,數(shù)據(jù)完整性也可以得到保障;
每個(gè)節(jié)點(diǎn)都是獨(dú)立的,無(wú)需其他節(jié)點(diǎn)協(xié)調(diào),因此也沒(méi)有中央節(jié)點(diǎn);
單節(jié)點(diǎn)性能優(yōu)秀:根據(jù)機(jī)器配置、網(wǎng)絡(luò)、磁盤系統(tǒng)和數(shù)據(jù)復(fù)制因素的不同,每秒可以執(zhí)行10-20k操作;
支持地理分散式部署。
LinkedIn目前就使用Voldemort解決了高可伸縮性存儲(chǔ)問(wèn)題。
不知道你是否一口氣看完本文,我想你也一定會(huì)驚訝于這么多開(kāi)源數(shù)據(jù)庫(kù)吧,事實(shí)上,本文也尚未完全羅列,歡迎你的補(bǔ)充。
原文出處:http://phpcamp.net/toolbar/25-alternative-open-source-database-engines
原文名:25+ Alternative & Open Source Database Engines
【編輯推薦】
- 用NoSQL來(lái)替代MySQL在Digg中的原因
- MongoDB CEO談NoSQL的大數(shù)據(jù)量處理能力
- 51CTO專訪蓋國(guó)強(qiáng):NoSQL很火 但還需市場(chǎng)檢驗(yàn)
- 詳解NoSQL數(shù)據(jù)庫(kù)使用實(shí)例
- 云計(jì)算時(shí)代NoSQL當(dāng)?shù)?關(guān)系數(shù)據(jù)庫(kù)日薄西山