云計(jì)算背后的秘密(6)-NoSQL數(shù)據(jù)庫(kù)綜述(3) |
發(fā)布時(shí)間: 2012/9/15 18:17:25 |
數(shù)據(jù)模型 傳統(tǒng)的數(shù)據(jù)庫(kù)在數(shù)據(jù)模型方面,主要是關(guān)系型,它的特色是對(duì)Join類操作和ACID事務(wù)的支持。在NoSQL領(lǐng)域,主要有三種主流的數(shù)據(jù)模型: Column-oriented(列式) 列式也主要使用Table這樣的模型,但是它并不支持類似Join這樣多表的操作,它的主要特點(diǎn)是在存儲(chǔ)數(shù)據(jù)時(shí),主要圍繞著“列(Column)”,而不是像傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)那樣根據(jù)“行(Row)”進(jìn)行存儲(chǔ),也就是說(shuō),屬于同一列的數(shù)據(jù)會(huì)盡可能地存儲(chǔ)在硬盤同一個(gè)頁(yè)(Page)中,而不是將屬于同一個(gè)行的數(shù)據(jù)存放在一起,這樣做的好處是,對(duì)于很多類似數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)的應(yīng)用,雖然每次查詢都會(huì)處理很多數(shù)據(jù),但是每次所涉及的列并沒(méi)有很多,這樣如果使用列式數(shù)據(jù)庫(kù)的話,將會(huì)節(jié)省大量I/O,并且大多數(shù)列式數(shù)據(jù)庫(kù)都支持Column Family這個(gè)特性,通過(guò)這個(gè)特性能將多個(gè)Column并為一個(gè)小組,這樣做好處是能將相似Column放在一起存儲(chǔ),這樣能提高這些Column的存儲(chǔ)和查詢效率?傮w而言,這種數(shù)據(jù)模型的優(yōu)點(diǎn)是比較適合匯總(Aggregation)和數(shù)據(jù)倉(cāng)庫(kù)這類應(yīng)用。. Key-value 雖然Key-value這種模型和傳統(tǒng)的關(guān)系型相比較簡(jiǎn)單,有點(diǎn)類似常見(jiàn)的HashTable,一個(gè)Key對(duì)應(yīng)一個(gè)Value,但是其能提供非?斓牟樵兯俣、大的數(shù)據(jù)存放量和高并發(fā)操作,并非常適合通過(guò)主鍵對(duì)數(shù)據(jù)進(jìn)行查詢和修改等操作,雖然不支持復(fù)雜的操作,但是可以通過(guò)上層的開(kāi)發(fā)來(lái)彌補(bǔ)這個(gè)缺陷。 Document(文檔) 在結(jié)構(gòu)上,Document和Key-value是非常相似的,也是一個(gè)Key對(duì)應(yīng)一個(gè)Value,但是這個(gè)Value主要以JSON或者XML等格式的文檔來(lái)進(jìn)行存儲(chǔ),是有語(yǔ)義的,并且Document DB一般可以對(duì)Value來(lái)創(chuàng)建Secondary Index來(lái)方便上層的應(yīng)用,而這點(diǎn)是普通Key-Value DB所無(wú)法支持的。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |