隨著互聯(lián)網(wǎng)的不斷發(fā)展,各種類型的應(yīng)用層出不窮,所以導(dǎo)致在這個云計算的時代,對技術(shù)提出了更多的需求,主要體現(xiàn)在下面這四個方面:
- 低延遲的讀寫速度:應(yīng)用快速地反應(yīng)能極大地提升用戶的滿意度;
- 支撐海量的數(shù)據(jù)和流量:對于搜索這樣大型應(yīng)用而言,需要利用PB級別的數(shù)據(jù)和能應(yīng)對百萬級的流量;
- 大規(guī)模集群的管理:系統(tǒng)管理員希望分布式應(yīng)用能更簡單的部署和管理;
目前世界上主流的存儲系統(tǒng)大部分還是采用了關(guān)系型數(shù)據(jù)庫,其主要有一下優(yōu)點:
1.事務(wù)處理—保持數(shù)據(jù)的一致性;
2.由于以標(biāo)準(zhǔn)化為前提,數(shù)據(jù)更新的開銷很?。ㄏ嗤淖侄位旧现挥幸惶帲?/p>
3.可以進行Join等復(fù)雜查詢。
雖然關(guān)系型數(shù)據(jù)庫已經(jīng)在業(yè)界的數(shù)據(jù)存儲方面占據(jù)不可動搖的地位,但是由于其天生的幾個限制,使其很難滿足上面這幾個需求:
- 擴展困難:由于存在類似Join這樣多表查詢機制,使得數(shù)據(jù)庫在擴展方面很艱難;
- 讀寫慢:這種情況主要發(fā)生在數(shù)據(jù)量達到一定規(guī)模時由于關(guān)系型數(shù)據(jù)庫的系統(tǒng)邏輯非常復(fù)雜,使得其非常容易發(fā)生死鎖等的并發(fā)問題,所以導(dǎo)致其讀寫速度下滑非常嚴重;
- 成本高:企業(yè)級數(shù)據(jù)庫的License價格很驚人,并且隨著系統(tǒng)的規(guī)模,而不斷上升;
- 有限的支撐容量:現(xiàn)有關(guān)系型解決方案還無法支撐Google這樣海量的數(shù)據(jù)存儲;
業(yè)界為了解決上面提到的幾個需求,推出了多款新類型的數(shù)據(jù)庫,并且由于它們在設(shè)計上和傳統(tǒng)的NoSQL數(shù)據(jù)庫相比有很大的不同,所以被統(tǒng)稱為“NoSQL”系列數(shù)據(jù)庫??偟膩碚f,在設(shè)計上,它們非常關(guān)注對數(shù)據(jù)高并發(fā)地讀寫和對海量數(shù)據(jù)的存儲等,與關(guān)系型數(shù)據(jù)庫相比,它們在架構(gòu)和數(shù)據(jù)模型方量面做了“減法”,而在擴展和并發(fā)等方面做了“加法”。現(xiàn)在主流的NoSQL數(shù)據(jù)庫有BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB和Redis等。接下來,將關(guān)注NoSQL數(shù)據(jù)庫到底存在哪些優(yōu)缺點。