幾乎每個(gè)Web開發(fā)人員都有自己喜歡的數(shù)據(jù)庫(kù),,或自己最熟悉的數(shù)據(jù)庫(kù),但最常見的無(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ù)存在,,其中有一些也開始受到人們的高度重視,下面我們就一起來(lái)看看吧,,注意本文只介紹開源數(shù)據(jù)庫(kù),,說(shuō)不定在下一個(gè)項(xiàng)目中,你就有嘗試它們的沖動(dòng),。 1,、MongoDB MongoDB是一款開源,高性能,,可擴(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編寫,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是一系列開源的嵌入式數(shù)據(jù)庫(kù),,使開發(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í)所改寫的軟件。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開發(fā),,后轉(zhuǎn)變成了開源項(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è)寫操作,會(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。 8,、Memcached Memcached是開源的分布式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ǔ)言編寫,,可以想memcached那樣使用,,放在傳統(tǒng)數(shù)據(jù)庫(kù)的前端,它支持許多編程語(yǔ)言,,受到許多流行的項(xiàng)目使用,,如GitHub和Engine Yard,有一個(gè)用PHP編寫的客戶端叫做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è)公司開發(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編寫,,可在類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分支,它包括所有主要的開源存儲(chǔ)引擎,,另外也開發(fā)了屬于自己的Maria存儲(chǔ)引擎,。MariaDB是由原來(lái) MySQL 的作者 Michael Widenius 創(chuàng)辦的公司所開發(fā)的免費(fè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編寫的一款SQL關(guān)系數(shù)據(jù)庫(kù)引擎,,它的核心完全是多線程的,支持雙向鎖和MVCC(多版本并發(fā)控制),,幾乎完整支持ANSI-92 SQL,,支持常見數(shù)據(jù)類型,最新版本增加了對(duì)BLOB和CLOB數(shù)據(jù)的支持,,最高支持達(dá)64T的數(shù)據(jù)量,。同時(shí),HyperSQL也是一個(gè)不錯(cuò)的嵌入式數(shù)據(jù)庫(kù),。 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)用程序開發(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重寫和MVC框架,以及對(duì)XProc的支持,。eXist-db與XQuery標(biāo)準(zhǔn)高度兼容(目前XQTS的得分是99.4%),。 20、Gladius Gladius是用純PHP編寫的平面文件數(shù)據(jù)庫(kù)引擎,,它的SQL語(yǔ)法與SQL92的一個(gè)子集兼容,,它捆綁了一個(gè)輕量級(jí)的adoDB驅(qū)動(dòng)。 21,、CloudStore CloudStore(以前叫做Kosmos文件系統(tǒng))是一個(gè)開源的高性能分布式文件系統(tǒng),,它是用C++編寫的,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)的開源多值數(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表示開源版本,,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管理界面和終端模擬器,,開源版本僅包括核心多值數(shù)據(jù)庫(kù)引擎,主要是為開發(fā)人員準(zhǔn)備的,。 23,、ScarletDME ScarletDME也是一個(gè)開源多值數(shù)據(jù)庫(kù),它是OpenQM的社區(qū)分支版,,最初由Ladybridge開發(fā),,這個(gè)項(xiàng)目創(chuàng)立于2008年11月28日,它既在獨(dú)立開發(fā)自己的功能,,也在為OpenQM貢獻(xiàn)代碼,。這個(gè)項(xiàng)目最初的名字叫做Ladybridges GPL OpenQM,現(xiàn)在正式改為ScarletDME,,其中的DME是Data Management Environment(數(shù)據(jù)管理環(huán)境)的首字母縮寫,。 24、SmallSQL SmallSQL是一個(gè)100%純Java編寫的輕量級(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ù)智能的開源RDBMS,,它使用了列存儲(chǔ)架構(gòu),支持位圖索引,,哈希連接/聚合和頁(yè)面級(jí)多版本,,大部分?jǐn)?shù)據(jù)庫(kù)最初都注重事務(wù)處理能力,,而分析功能都是后來(lái)才加上去的。相反,,LucidDB中的所有組件從一開始就是為滿足靈活的需求,,高性能數(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ò)展的,,可移植的,,分布式,嵌入式和開源數(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ǔ)上開發(fā)RESTful Web應(yīng)用程序變得更加容易,。InfoGrid是開源的,,包括一系列項(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框架,,它允許開發(fā)人員將任何互聯(lián)網(wǎng)上的數(shù)據(jù)源當(dāng)作一個(gè)圖像對(duì)象看待,。 InfoGrid Utilities項(xiàng)目 – 收集InfoGrid使用的常見對(duì)象框架和實(shí)用代碼。 28,、Apache Derby Apache Derby是Apache DB的子項(xiàng)目,,它完全用Java編寫,是一個(gè)開源關(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也支持常見的客戶端/服務(wù)器模式,,它也易于安裝和使用,。 29、hamsterdb Hamsterdb是一個(gè)輕量級(jí)嵌入式NoSQL Key/Value存儲(chǔ)引擎,,它已經(jīng)有5年歷史,,現(xiàn)在它的開發(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è)開源的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àng)目。 32,、txtSQL txtSQL是一個(gè)面向?qū)ο蟮钠矫嫖募?shù)據(jù)庫(kù)管理系統(tǒng),,它使用PHP編寫,支持對(duì)普通文本文件的操作,,雖然是一個(gè)文本數(shù)據(jù)庫(kù),,但同樣支持SQL的一個(gè)子集,并且執(zhí)行效率非常高,,txtSQL使用文件系統(tǒng)的方法與MySQL的表和數(shù)據(jù)庫(kù)原理類似,,它有一個(gè)類似于phpMyAdmin管理界面。 33,、db4o db4o是一個(gè)面向?qū)ο蟮拈_源數(shù)據(jù)庫(kù),,允許Java和.NET開發(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+樹和固定長(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ǔ)言編寫的,,為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類型,,包括列表和元組,也可以集成常見的序列化框架,,如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ì)驚訝于這么多開源數(shù)據(jù)庫(kù)吧,,事實(shí)上,,本文也尚未完全羅列,歡迎你的補(bǔ)充,。 原文出處:http:///toolbar/25-alternative-open-source-database-engines 原文名:25+ Alternative & Open Source Database Engines 【編輯推薦】 |
|
來(lái)自: CevenCheng > 《NoSQL》