正文

最近了解了一點(diǎn)非關(guān)系型數(shù)據(jù)庫(kù),剛剛接觸,覺(jué)得這是一個(gè)很好的方向,對(duì)于大數(shù)據(jù) 方面的處理,非關(guān)系型數(shù)據(jù)庫(kù)能起到至關(guān)重要的地位。這里我主要是整理了一些前輩的經(jīng)驗(yàn),僅供參考。

回到頂部

關(guān)系型數(shù)據(jù)庫(kù)的特點(diǎn)

  1.關(guān)系型數(shù)據(jù)庫(kù) 

關(guān)系型數(shù)據(jù)庫(kù),是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù)。 簡(jiǎn)單來(lái)說(shuō),關(guān)系模型指的就是二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織。常見(jiàn) 的關(guān)系型數(shù)據(jù)庫(kù)有Oracle、Mysql、sql server等等。

2. 關(guān)系型數(shù)據(jù)庫(kù)瓶頸 
高并發(fā)讀寫(xiě)需求 
網(wǎng)站的用戶(hù)并發(fā)性非常高,往往達(dá)到每秒上萬(wàn)次讀寫(xiě)請(qǐng)求,對(duì)于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),硬盤(pán)I/O是一個(gè)很大的瓶頸 
海量數(shù)據(jù)的高效率讀寫(xiě) 網(wǎng)站每天產(chǎn)生的數(shù)據(jù)量是巨大的,對(duì)于關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),在一張包含海量數(shù)據(jù)的表中查詢(xún),效率是非常低的 
高擴(kuò)展性和可用性 
在基于web的結(jié)構(gòu)當(dāng)中,數(shù)據(jù)庫(kù)是最難進(jìn)行橫向擴(kuò)展的,當(dāng)一個(gè)應(yīng)用系統(tǒng)的用戶(hù)量和訪問(wèn)量與日俱增的時(shí)候,數(shù)據(jù)庫(kù)卻沒(méi)有辦法像web server和app server那樣簡(jiǎn)單的通過(guò)添加更多的硬件和服務(wù)節(jié)點(diǎn)來(lái)擴(kuò)展性能和負(fù)載能力。對(duì)于很多需要提供24小時(shí)不間斷服務(wù)的網(wǎng)站來(lái)說(shuō),對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行升級(jí)和擴(kuò)展是非常痛苦的事情,往往需要停機(jī)維護(hù)和數(shù)據(jù)遷移。  
對(duì)網(wǎng)站來(lái)說(shuō),關(guān)系型數(shù)據(jù)庫(kù)的很多特性不再需要了: 
事務(wù)一致性 
關(guān)系型數(shù)據(jù)庫(kù)在對(duì)事物一致性的維護(hù)中有很大的開(kāi)銷(xiāo),而現(xiàn)在很多web2.0系統(tǒng)對(duì)事物的讀寫(xiě)一致性都不高 
讀寫(xiě)實(shí)時(shí)性 
對(duì)關(guān)系數(shù)據(jù)庫(kù)來(lái)說(shuō),插入一條數(shù)據(jù)之后立刻查詢(xún),是肯定可以讀出這條數(shù)據(jù)的,但是對(duì)于很多web應(yīng)用來(lái)說(shuō),并不要求這么高的實(shí)時(shí)性,比如發(fā)一條消息之后,過(guò)幾秒乃至十幾秒之后才看到這條動(dòng)態(tài)是完全可以接受的 
復(fù)雜SQL,特別是多表關(guān)聯(lián)查詢(xún) 
任何大數(shù)據(jù)量的web系統(tǒng),都非常忌諱多個(gè)大表的關(guān)聯(lián)查詢(xún),以及復(fù)雜的數(shù)據(jù)分析類(lèi)型的復(fù)雜SQL報(bào)表查詢(xún),特別是SNS類(lèi)型的網(wǎng)站,從需求以及產(chǎn)品階級(jí)角度,就避免了這種情況的產(chǎn)生。往往更多的只是單表的主鍵查詢(xún),以及單表的簡(jiǎn)單條件分頁(yè)查詢(xún),SQL的功能極大的弱化了  
在關(guān)系型數(shù)據(jù)庫(kù)中,導(dǎo)致性能欠佳的最主要原因是多表的關(guān)聯(lián)查詢(xún),以及復(fù)雜的數(shù)據(jù)分析類(lèi)型的復(fù)雜SQL報(bào)表查詢(xún)。為了保證數(shù)據(jù)庫(kù)的ACID特性,我們必須盡量按照其要求的范式進(jìn)行設(shè)計(jì),關(guān)系型數(shù)據(jù)庫(kù)中的表都是存儲(chǔ)一個(gè)格式化的數(shù)據(jù)結(jié)構(gòu)。每個(gè)元組字段的組成都是一樣,即使不是每個(gè)元組都需要所有的字段,但數(shù)據(jù)庫(kù)會(huì)為

網(wǎng)友評(píng)論