linux下的開源數(shù)據(jù)庫(kù)有:1、MySQL,是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng);2、PostgreSQL,是一款“對(duì)象-關(guān)系”型數(shù)據(jù)庫(kù)管理系統(tǒng);3、MongoDB,是一款開源、面向文檔的NoSQL數(shù)據(jù)庫(kù);4、Hadoop,是一個(gè)開源的、基于列存儲(chǔ)模型的分布式數(shù)據(jù)庫(kù);5、Couchbase,是一款基于JSON模型的文檔數(shù)據(jù)庫(kù);6、Neo4j,是一款開源的高性能NoSQL圖數(shù)據(jù)庫(kù)。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux下的開源數(shù)據(jù)庫(kù)
1、MySQL
MySQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),為甲骨文公司產(chǎn)品。支持多種存儲(chǔ)引擎、集群、全文索引、支持多線程、充分利用CPU資源、支持多用戶等其它許多非常專業(yè)的功能。
MySQL由于性能高、成本低、可靠性好已經(jīng)成為最流行的開源數(shù)據(jù)庫(kù),并且被廣泛應(yīng)用在Web應(yīng)用程序以及其它中小型項(xiàng)目上。從WordPress 到Movable Type都把MySQL作為默認(rèn)的數(shù)據(jù)庫(kù)。此外,自甲骨文收購(gòu)MySQL以后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式避開這種風(fēng)險(xiǎn),開發(fā)并運(yùn)營(yíng)著完全兼容MySQL的MariaDB數(shù)據(jù)庫(kù)。
2、PostgreSQL
PostgreSQL可以簡(jiǎn)稱為“postgres”,是一款對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),PostgreSQL采用的是比較經(jīng)典的C/S(client/server)結(jié)構(gòu),也就是一個(gè)客戶端對(duì)應(yīng)一個(gè)服務(wù)器端守護(hù)進(jìn)程的模式。PostgreSQL擁有非常完美的驅(qū)動(dòng),并支持標(biāo)準(zhǔn)的ANSI-SQL和擴(kuò)展功能,在許多方面都要超過(guò)MySQL。
PostgreSQL是全功能的自由軟件數(shù)據(jù)庫(kù),很長(zhǎng)時(shí)間以來(lái),PostgreSQL是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)(MVCC)、數(shù)據(jù)完整性檢查等特性的唯一一種自由軟件的數(shù)據(jù)庫(kù)管理系統(tǒng)。許多云服務(wù)提供商比如Heroku等,都用PostgreSQL作為他們的RDBMS存儲(chǔ)。
缺點(diǎn)方面,PostgreSQL還欠缺一些比較高端的數(shù)據(jù)庫(kù)管理系統(tǒng)需要的特性,比如數(shù)據(jù)庫(kù)集群,更優(yōu)良的管理工具和更加自動(dòng)化的系統(tǒng)優(yōu)化功能等提高數(shù)據(jù)庫(kù)性能的機(jī)制等。
3、MongoDB
MongoDB是一款開源、面向文檔并且也是當(dāng)下人氣最旺的NoSQL數(shù)據(jù)庫(kù),它也是一款介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品。Mongo最大的特點(diǎn)是它支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。還具有高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便等特點(diǎn)。
4、Hadoop (HBase)
Hadoop (HBase)是一個(gè)開源的、基于列存儲(chǔ)模型的分布式數(shù)據(jù)庫(kù),它是Apache Hadoop項(xiàng)目的一部分,開發(fā)語(yǔ)言為Java。
HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。且具有高可靠性、高性能、可伸縮、并建立在關(guān)系模型基礎(chǔ)上的分布式數(shù)據(jù)庫(kù)。
HBase是Google Bigtable的開源實(shí)現(xiàn),類似Google Bigtable利用GFS作為其文件存儲(chǔ)系統(tǒng),用以存儲(chǔ)大規(guī)模結(jié)構(gòu)化數(shù)據(jù)。HBase利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng);Google運(yùn)行MapReduce來(lái)處理Bigtable中的海量數(shù)據(jù),HBase同樣利用Hadoop MapReduce來(lái)處理HBase中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對(duì)應(yīng)。
5、Couchbase
Couchbase是一款基于JSON模型的文檔數(shù)據(jù)庫(kù),它是CouchDB的一個(gè)fork,能夠?qū)崿F(xiàn)水平伸縮、并且對(duì)于數(shù)據(jù)的讀寫都能提供低延遲訪問(wèn)。Couchbase要比CouchDB功能更加全面,并且Couchbase產(chǎn)品包含了CouchDB的一個(gè)副本。Couchbase產(chǎn)品向CouchDB添加了緩存、集群等功能。此外,Couchbase還包含一些不錯(cuò)的集成功能,對(duì)于數(shù)據(jù)存儲(chǔ)系統(tǒng)來(lái)說(shuō),Couchbase是一個(gè)不錯(cuò)的選擇。
6、Neo4j
Neo4j是一款開源的高性能NoSQL圖數(shù)據(jù)庫(kù),它使用圖(graph)相關(guān)的概念來(lái)描述數(shù)據(jù)模型,把 數(shù)據(jù)保存為圖中的節(jié)點(diǎn)以及節(jié)點(diǎn)之間的關(guān)系。支持ACID事務(wù)(原子性、獨(dú)立性、持久性和一致性)。
在現(xiàn)實(shí)中,很多數(shù)據(jù)都是用圖來(lái)表達(dá)的,比如社交網(wǎng)絡(luò)中人與人的關(guān)系、地圖數(shù)據(jù)、或是基因信息等等。Neo4j中最基本的概念是節(jié)點(diǎn)(node)和關(guān)系(relationship)。節(jié)點(diǎn)表示實(shí)體,在兩個(gè)節(jié)點(diǎn)之間,可以有不同的關(guān)系。
7、Redis
Redis是一個(gè)開源、支持網(wǎng)絡(luò)、基于內(nèi)存、鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)。開發(fā)者無(wú)需存儲(chǔ)數(shù)字和字符串即可dump整個(gè)哈希值、列表、集合以及其它復(fù)雜的結(jié)果存儲(chǔ),此外,Redis還提供復(fù)制/同步和持久化等功能。
Redis是一個(gè)高性能的鍵值對(duì)數(shù)據(jù)庫(kù)。Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。
8、Firebird
Firebird是一個(gè)跨平臺(tái)的關(guān)系數(shù)據(jù)庫(kù),用C和C++開發(fā),提供可在Linux,Windows,MacOS和各種Unix平臺(tái)上運(yùn)行的許多ANSI SQL標(biāo)準(zhǔn)功能。目前能夠運(yùn)行在Windows、linux和各種Unix操作系統(tǒng)上,可以對(duì)存儲(chǔ)過(guò)程和觸發(fā)器提供高性能和強(qiáng)大的語(yǔ)言支持。
Firebird既能作為多用戶環(huán)境下的數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行,也提供嵌入式數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。
9、Memcached
Memcached是一套分布式的高速緩存系統(tǒng),它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫(kù)檢索結(jié)果等。簡(jiǎn)單地說(shuō)就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。
Memcached 支持許多平臺(tái):Linux、FreeBSD、Solaris、Mac OS,也可以安裝在Windows上。
Linux系統(tǒng)安裝memcached,首先要先安裝libevent庫(kù)。
由于Memcached通常只是當(dāng)作高速緩存系統(tǒng)使用,所以使用Memcached的應(yīng)用程序在寫回較慢的系統(tǒng)時(shí)(像是后端的數(shù)據(jù)庫(kù))需要額外的代碼更新Memcached內(nèi)的數(shù)據(jù)。
10、MariaDB
MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL的一個(gè)分支,完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲(chǔ)引擎方面,使用XtraDB來(lái)代替MySQL的InnoDB。另外又添加了一些功能,以支持本地的非阻塞操作和進(jìn)度報(bào)告。這意味著,所有使用MySQL的連接器、庫(kù)和應(yīng)用程序也將會(huì)在MariaDB下工作。
MariaDB由MySQL的創(chuàng)始人麥克爾·維德紐斯主導(dǎo)開發(fā),正如上文所提到的,由于擔(dān)心甲骨文存在將MySQL閉源的風(fēng)險(xiǎn),目前已有許多公司將項(xiàng)目移到MariaDB上,比如維基百科、谷歌等。
11、MonetDB
MonetDB是一款開源的、面向列的數(shù)據(jù)庫(kù)管理系統(tǒng),其專門為數(shù)據(jù)挖掘、OLAP、GIS、XML查詢、文本及多媒體檢索提供高性能應(yīng)用。
MonetDB數(shù)據(jù)庫(kù)管理系統(tǒng)包含MonetDB/SQL、MonetDB/GIS、MonetDB服務(wù)器。其還具有自動(dòng)和自調(diào)優(yōu)索引、運(yùn)行時(shí)查詢優(yōu)化以及模塊化軟件架構(gòu)。