目標(biāo):對(duì)于數(shù)據(jù)存儲(chǔ)使用,大眾人民可以選中免費(fèi)資源:某度的網(wǎng)盤(pán),對(duì)于互聯(lián)網(wǎng)的我們主要是考量讀寫(xiě)性能,我們當(dāng)然希望數(shù)據(jù)讀寫(xiě)越快越好,為了更快的讀寫(xiě),我們可以將數(shù)據(jù)放在內(nèi)存之中,速度可以達(dá)到硬盤(pán)的數(shù)十倍。當(dāng)是另一方面,內(nèi)存的價(jià)格比硬盤(pán)貴了很多,并且內(nèi)存具有容量和安全性限制,為了數(shù)據(jù)持久化,硬盤(pán)也是需要的。下面我們來(lái)對(duì)比當(dāng)前常見(jiàn)數(shù)據(jù)庫(kù)的特性和優(yōu)缺點(diǎn),方便你做選擇:
第一:oracle數(shù)據(jù)庫(kù):oracle作為一種商業(yè)性數(shù)據(jù)庫(kù),在事務(wù)處理方面有自己獨(dú)到的優(yōu)勢(shì),功能比較強(qiáng)大,市場(chǎng)占有率也比較高。oracle數(shù)據(jù)庫(kù)是一種大型的關(guān)系型數(shù)據(jù)庫(kù),在使用上會(huì)收費(fèi)。在部署上,可以根據(jù)自己的環(huán)境采用單節(jié)點(diǎn)或者集群部署。經(jīng)常會(huì)使用于銀行和金融機(jī)構(gòu),存儲(chǔ)大量數(shù)據(jù),可以對(duì)海量數(shù)據(jù)進(jìn)行分析處理,在安全性上使用訪問(wèn)控制和多種數(shù)據(jù)備份機(jī)制,可靠性高。
第二:Mysql:作為一種開(kāi)源的輕量級(jí)數(shù)據(jù)庫(kù),在開(kāi)源數(shù)據(jù)庫(kù)中比較流行,由于小巧安裝方便快捷,經(jīng)常會(huì)用于互聯(lián)網(wǎng)公司,維護(hù)也比較方便。因?yàn)殚_(kāi)源,使用上比較靈活,mysql還有許多第三方的存儲(chǔ)引擎,可以根據(jù)自己的需要進(jìn)行安裝。在功能上mysql可能沒(méi)有oracle強(qiáng)大,但是對(duì)于資源的占用非常少,數(shù)據(jù)恢復(fù)快。在維護(hù)上,追求穩(wěn)定的性能和易用性。
第三:redis作為一種緩存數(shù)據(jù)庫(kù),對(duì)于數(shù)據(jù)的讀寫(xiě)特別快,redis之所以快,是因?yàn)樗鼣?shù)據(jù)放在內(nèi)存中,但是內(nèi)存比較貴,另一方面,內(nèi)存也是有限制的,當(dāng)內(nèi)存不夠時(shí),就需要使用redis的分布式方案。redis作為一種非關(guān)系型數(shù)據(jù)庫(kù),可以適用于高并發(fā)場(chǎng)景,配合關(guān)系型數(shù)據(jù)庫(kù)作為做高速緩存,也可以降低磁盤(pán)IO,使用鍵值對(duì)存儲(chǔ),不適用于結(jié)構(gòu)復(fù)雜的sql數(shù)據(jù)
第四:MongoDB:Mongodb同時(shí)使用硬盤(pán)和內(nèi)存,使用操作系統(tǒng)的Mmap機(jī)制進(jìn)行數(shù)據(jù)的讀寫(xiě)。適用于網(wǎng)站的實(shí)時(shí)存儲(chǔ)的復(fù)制和高度伸縮型,具有很強(qiáng)大的實(shí)時(shí)存儲(chǔ),插入和查詢功能。此外,Mongodb非常適用地址坐標(biāo)的查詢,適用于lbs應(yīng)用。缺點(diǎn)也很明顯,雖然使用sql查詢的方式,但是和mysql查詢存在差距;在事務(wù)處理上,沒(méi)有保證當(dāng)然還有很多數(shù)據(jù)庫(kù),例如sql server,IBM DB2,都有自己的特性。我們?cè)谶x擇數(shù)據(jù)庫(kù)時(shí),既要考慮成本,還有考慮維護(hù)的穩(wěn)定和便利性,結(jié)合自己的設(shè)備規(guī)模。最重要的,需要結(jié)合我們的業(yè)務(wù),如果高安全性,海量數(shù)據(jù),可以選擇oracle;網(wǎng)站上的快速查詢,高并發(fā)訪問(wèn),可以選擇redis