盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫_第1頁
盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫_第2頁
盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫_第3頁
盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫_第4頁
盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

盤點2013:21款最優(yōu)秀的開源數(shù)據(jù)庫摘要:幾乎所有軟件項目的開發(fā)都需要數(shù)據(jù)庫的支持,目前,隨著開源技術的迅速發(fā)展,越來越多的數(shù)據(jù)供應商選擇開源數(shù)據(jù)庫,為開源事業(yè)添磚加瓦。作為一名軟件開發(fā)人員或DBA,其中一份必不可少的工作就是與數(shù)據(jù)庫打交道,比如MSSQL服務器、MySQL、Oracle、PostgreSQL、MongoDB等等。眾所周知,其中MySQL是目前使用最廣泛最好的免費開源數(shù)據(jù)庫,此外,還有一些你不知道或者沒用過但又非常出色的開源數(shù)據(jù)庫,例如PostgreSQL、MongoDB、HBase、Cassandra、Couchbase、Neo4j、Riak、Redis、Firebird等。在本文,作者總共總結了21個最優(yōu)秀的開源數(shù)據(jù)庫,不妨讓我們一起來看下吧。MySQLMySQL是一個開源的關系型數(shù)據(jù)庫管理系統(tǒng),為甲骨文公司產品。支持多種存儲引擎、集MySQQ群、全文 索引、支持多線程、充分利用CPU資源、支持多用戶等其它許多非常專業(yè)的功能。MySQL由于性能高、成本低、可靠性好已經(jīng)成為最流行的開源數(shù)據(jù)庫,并且被廣泛應用在Web應用程序以及其它中小型項目上。從WordPress到MovableType都把MySQL作為默認的數(shù)據(jù)庫。此外,自甲骨文收購MySQL以后,有將MySQL閉源的潛在風險,因此社區(qū)采用分支的方式避開這種風險,開發(fā)并運營著完全兼容MySQL的MariaDB數(shù)據(jù)庫。PostgreSQLPostgreSQL可以簡稱為“postgres”是一款對象-關系型數(shù)據(jù)庫管理系統(tǒng),PostgreSQL采PostgreSQL用的是比較經(jīng)典的C/S(用的是比較經(jīng)典的C/S(client/server)結構,也就是一個客戶端對應一個服務器端守護進程的模式。PostgreSQL擁有非常完美的驅動,并支持標準的ANSI-SQL和擴展功能,在許多方面都要超過MySQL。PostgreSQL是全功能的自由軟件數(shù)據(jù)庫,很長時間以來,PostgreSQL是唯一支持事務、子查詢、多版本并行控制系統(tǒng)(MVCC)、數(shù)據(jù)完整性檢查等特性的唯一一種自由軟件的數(shù)據(jù)庫管理系統(tǒng)。許多云服務提供商比如Heroku等,都用PostgreSQL作為他們的RDBMS存儲。缺點方面,PostgreSQL還欠缺一些比較高端的數(shù)據(jù)庫管理系統(tǒng)需要的特性,比如數(shù)據(jù)庫集群,更優(yōu)良的管理工具和更加自動化的系統(tǒng)優(yōu)化功能等提高數(shù)據(jù)庫性能的機制等。MongoDBMongoDB是一款開源、面向文檔并且也是當下人氣最旺的NoSQL數(shù)據(jù)庫,它也是一款介庫和非關系數(shù)據(jù)庫之間的產品。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。還具有高性能、易部署、易使用,存儲數(shù)據(jù)非常方便等特點。Hadoop(HBase)Hadoop(HBase)是一個開源的、基于列存儲模型的分布式數(shù)據(jù)庫,它是ApacheHadoop項目的一部分,開發(fā)語言為Java。HBase不同于一般的關系數(shù)據(jù)庫,它是一個適合于非結構化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不APRCHE同的是 HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸縮、并建立在關系模型基礎上的分布式數(shù)據(jù)庫。HBase是GoogleBigtable的開源實現(xiàn),類似GoogleBigtable利用GFS作為其文件存儲系統(tǒng),用以存儲大規(guī)模結構化數(shù)據(jù)。HBase利用HadoopHDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用HadoopMapReduce來處理HBase中的海量數(shù)據(jù);GoogleBigtable利用Chubby作為協(xié)同服務,HBase利用Zookeeper作為對應。5?ApacheCassandraApacheCassandra是一套開源分布式NoSQL數(shù)據(jù)庫系統(tǒng),類似于Google的BigTable。么驊3Cassandra它最初由 Facebook開發(fā),用于儲存收件箱等簡單格式數(shù)據(jù),集GoogleBigTable的數(shù)據(jù)模型與AmazonDynamo的完全分布式的架構于一身。在2008年,F(xiàn)acebook將其開源。Cassandra的主要特點就是它不是一個數(shù)據(jù)庫,而是由一堆數(shù)據(jù)庫節(jié)點共同構成的一個分布式網(wǎng)絡服務,對Cassandra的一個寫操作,會被復制到其它節(jié)點上去,對Cassandra的讀操作,也會被路由到某個節(jié)點上面去讀取。對于一個Cassandra群集來說,擴展性能是比較簡單的事情,只管在群集里面添加節(jié)點就可以了。6?CouchbaseCouchbase是一款基于JSON模型的文檔數(shù)據(jù)庫,它是CouchDB的一個fork,能夠實現(xiàn)水平伸縮、并且對于數(shù)據(jù)的讀寫都能提供低延遲訪問。Couchbase要比CouchDB功能更加全面,并且Couchbase產品包含了CouchDB的一個副本。Couchbase產品向CouchDB添加了緩存、集群等功能。此外,Couchbase還包含一些不錯的集成功能,對于數(shù)據(jù)存儲系統(tǒng)來說,Couchbase是一個不錯的選擇。7?Neo4jNeo4j是一款開源的高性能NoSQL圖數(shù)據(jù)庫,它使用圖(graph)相關的概念來描述數(shù)據(jù)?>Neo4j模型,把 數(shù)據(jù)保存為圖中的節(jié)點以及節(jié)點之間的關系。支持ACID事務(原子性、獨立性、持久性和一致性)。在現(xiàn)實中,很多數(shù)據(jù)都是用圖來表達的,比如社交網(wǎng)絡中人與人的關系、地圖數(shù)據(jù)、或是基因信息等等。Neo4j中最基本的概念是節(jié)點(node)和關系(relationship)。節(jié)點表示實體,在兩個節(jié)點之間,可以有不同的關系。8?Riak

種高度可擴展的分布式數(shù)據(jù)存儲。Riak沒有主Riak是基于Erlang和C語言開發(fā),Riak是Amazon的高可用性鍵值存儲庫,用Erlang編^riak種高度可擴展的分布式數(shù)據(jù)存儲。Riak沒有主寫且基于Dynamo,是寫且基于節(jié)點的概念,在處理故障方面更具靈活性。在開源版本中,不包含節(jié)點的概念,在處理故障方面更具靈活性。在開源版本中,不包含SNMP分布式模型。9.RedisRedis是一個開源、支持網(wǎng)絡、基于內存、[isdis■-■- dump整個哈希值、列表、集合以及其它復雜的結果存儲,此外,Redis串即可還提供復制侗步和持久化等功能。鍵值對存儲數(shù)據(jù)庫。開發(fā)者無需存儲數(shù)字和字符Redis是一個高性能的鍵值對數(shù)據(jù)庫。Redis的出現(xiàn),很大程度補償了memcached9.RedisRedis是一個開源、支持網(wǎng)絡、基于內存、[isdis■-■- dump整個哈希值、列表、集合以及其它復雜的結果存儲,此外,Redis串即可還提供復制侗步和持久化等功能。鍵值對存儲數(shù)據(jù)庫。開發(fā)者無需存儲數(shù)字和字符Redis是一個高性能的鍵值對數(shù)據(jù)庫。Redis的出現(xiàn),很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關系數(shù)據(jù)庫起到很好的補充作用。10.FirebirdFirebird是一個跨平臺的關系數(shù)據(jù)庫,用C和C++開發(fā)。目前能夠運行在Windows、linux和各種Unix操性能和強大的語言支持。作系統(tǒng)上,可以對存儲過程和觸發(fā)器提供高Firebird既能作為多用戶環(huán)境下的數(shù)據(jù)庫服務器運行,也提供嵌入式數(shù)據(jù)庫的實現(xiàn)。II.MemcachedMemcached是一套分布式的高速緩存系統(tǒng),它能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索結果等。簡單地說就是將數(shù)據(jù)調用到內存中,然后從內存中讀取,從而大大提高讀取速度。由于Memcached通常只是當作高速緩存系統(tǒng)使用,所以使用Memcached的應用程序在寫回較慢的系統(tǒng)時(像是后端的數(shù)據(jù)庫)需要額外的代碼更新Memcached內的數(shù)據(jù)。12.OracleBerkeleyDBOracleBerkeleyDB是一個高效的嵌入式數(shù)據(jù)庫編程庫。BerkeleyDB可以保存任意類型的鍵/值對(Key/ValuePair),而且可以為一個鍵保存多個數(shù)據(jù)。BerkeleyDB支持讓數(shù)千的

并發(fā)線程同時操作數(shù)據(jù)庫,支持最大256TB的數(shù)據(jù),廣泛用于各種操作系統(tǒng),其中包括大多數(shù)類Unix操作系統(tǒng)、Windows操作系統(tǒng)以及實時操作系統(tǒng)。13.HypertableHypertable是一個高性能的分布式數(shù)據(jù)存儲系統(tǒng),采用與Google的BigTable相似的模型。具有高性能、可伸縮、可擴展,并且主要集中大規(guī)模數(shù)據(jù)具有高性能、可伸縮、可擴展,并且主要集中大規(guī)模數(shù)據(jù)集。Hypertable采用類似表的形式組織數(shù)據(jù),但目前Hypertable并不支持關系數(shù)據(jù)庫中豐富的關系屬性。Hypertable將數(shù)據(jù)組織成一個多維稀疏矩陣。該矩陣中的所有行信息可以基于主鍵(PrimaryKey)進行排序。14.KeyspaceKeyspace是一款鍵值對數(shù)據(jù)庫存儲系統(tǒng),Keyspace基于Master-Slave模式,所有的寫均由Master承擔,并通過paxos一致傳播到Slave,讀可以根據(jù)基本路由到Master或Slave。因此,當Master出現(xiàn)宕機或不可訪問時,會存在一套Master的選舉機制,在keysapce中成為PaxosLease算法。15.4store厶store4store是一個高效、可擴展的RDF數(shù)據(jù)庫,它采用ANSIC99開發(fā),可以同時運行超過厶store的數(shù)據(jù)查」 詢,使用它所開發(fā)的Web應用程序可同時支持上千人訪問。16.MariaDBMariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個分支,完全兼容MySQL,包括API和命令行,MariaDBFOUNDATION為MariaDBFOUNDATION為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。另外又添加了一些功能,以支持本地的非阻塞操作和進度報告。這意味著,所有使用MySQL的連接器、庫和應用程序也將會在MariaDB下工作。MariaDB由MySQL的創(chuàng)始人麥克爾維德紐斯主導開發(fā),正如上文所提到的,由于擔心甲骨文存在將MySQL閉源的風險,目前已有許多公司將項目移到MariaDB上,比如維基百科、谷歌等。17?DrizzleDrizzle是一款免費/開源的關系型數(shù)據(jù)庫管理系統(tǒng),基于C++開發(fā),它是MySQL6.0的一個分支。和 MySQL—樣,Drizzle也是采用經(jīng)典的C/S(客戶端/服務端)架構模式,其主要專注于為云端應用提供一個可靠穩(wěn)定的數(shù)據(jù)庫。18?HyperSQLHyperSQL是一款采用Java編寫的SQL關系型數(shù)據(jù)庫引擎,其核心是多線程,支持雙向鎖和MVCC,和MVCC,HyperSQL并且為基于內存和磁盤的表提供小而快速的數(shù)據(jù)庫引擎,支持嵌入式/服務器模式。同時,它還擁有多種工具,比如命令行SQL工具、GUI查詢應用程序等。19.MonetDBMonetDB是一款開源的、面向列的數(shù)據(jù)庫管理系統(tǒng),其專門為數(shù)據(jù)挖掘、OLAP、GIS、XML查詢、mone文本及多媒體檢索提供高性能應用。查詢、mone文本及多媒體檢索提供高性能應用。MonetDB數(shù)據(jù)庫管理系統(tǒng)包含MonetDB/SQL、MonetDB/GIS、MonetDB服務器。其還具有自動和自調優(yōu)索引、運行時查詢優(yōu)化以及模塊化軟件架構。20?PerseverePersevere是一款對象存儲引擎和應用服務器(基于Java/Rhino),它提供一個服務器JavaScript環(huán)境來實現(xiàn)動態(tài)JSON數(shù)據(jù)的持久化數(shù)據(jù)存儲。支持通過標準JSONHTTP/RESTWeb接口來創(chuàng)建、讀取、更新和刪除數(shù)據(jù)。Persevere引以為自豪的是它的"schema-free”,這一特點使得它與其它數(shù)據(jù)庫有很大的區(qū)別。Persevere可以讓你隨心所欲的增加schema。Persevere并非把分級結構的頂層稱為一個domain(SimpleDB這么稱呼),也不稱之為文檔(CouchDB這么稱呼),Persevere稱之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論