偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

第42期:RDB與NoSQL的訪問性能

企業(yè)動態(tài)
我們繼續(xù)從軟件角度上看外存數(shù)據(jù)源的性能,來考察數(shù)據(jù)庫的性能特點(diǎn),在這篇文章中,我們只關(guān)心數(shù)據(jù)的訪問性能,而不涉及計(jì)算性能。

第42期:RDB與NoSQL的訪問性能

我們繼續(xù)從軟件角度上看外存數(shù)據(jù)源的性能,來考察數(shù)據(jù)庫的性能特點(diǎn),在這篇文章中,我們只關(guān)心數(shù)據(jù)的訪問性能,而不涉及計(jì)算性能。

一、關(guān)系數(shù)據(jù)庫

關(guān)系數(shù)據(jù)庫也是很常見的數(shù)據(jù)存儲方式。本質(zhì)上講,數(shù)據(jù)庫其實(shí)也是一種特殊的二進(jìn)制文件,但它的性能會弱于直接寫在操作系統(tǒng)下的文件,主要原因在于數(shù)據(jù)庫通常都要提供數(shù)據(jù)更新的能力,這就會產(chǎn)生影響性能的因素:

1. 緊湊性與壓縮手段

數(shù)據(jù)庫要考慮數(shù)據(jù)的更新,一般會采用段頁式的分塊存儲,在存儲數(shù)據(jù)時(shí)不會把分塊完全填滿,而會留一小部分空白區(qū)用于后續(xù)的修改動作。這樣,占用的硬盤空間就會比不考慮更新動作的文件更大一點(diǎn)。

因?yàn)橐聰?shù)據(jù),也很難實(shí)現(xiàn)數(shù)據(jù)壓縮。比如上一篇所說的把小整數(shù)存成較短字節(jié)的方案,如果采用了這種方案,一旦這個(gè)小整數(shù)被改成了大整數(shù),原來的空間就存不下了,就要把后續(xù)數(shù)據(jù)都向后移動,這會使數(shù)據(jù)更新成本過高,所以一般數(shù)據(jù)庫都不采用壓縮手段,而直接根據(jù)數(shù)據(jù)類型分配空間,也會造成空間的浪費(fèi),極端情況會出現(xiàn)占用空間大于文本的現(xiàn)象。

2. 事務(wù)一致性帶來的復(fù)雜性

許多商業(yè)數(shù)據(jù)庫還會同時(shí)支持OLTP業(yè)務(wù),在讀取數(shù)據(jù)時(shí)要提供一致性的能力,這會使訪問數(shù)據(jù)的動作復(fù)雜度變大很多。同一條數(shù)據(jù),由于其它事務(wù)的寫操作,可能出現(xiàn)多個(gè)備份,在讀取時(shí)數(shù)據(jù)庫要根據(jù)事務(wù)的啟動時(shí)刻找到正確的那一個(gè),這是個(gè)非常麻煩的動作,對性能影響很大。

另外,前面文章還提到過,按塊存儲的結(jié)構(gòu)對于分段也不夠自由,不象文件那樣可以實(shí)施更靈活的并行手段,也會導(dǎo)致數(shù)據(jù)庫的性能表現(xiàn)弱于直接 文件。

數(shù)據(jù)庫普遍還有一個(gè)IO性能不佳的問題,數(shù)據(jù)在數(shù)據(jù)庫中運(yùn)算時(shí)性能尚可,但要通過數(shù)據(jù)庫接口取出來就非常慢,實(shí)測的情況表明,這個(gè)性能經(jīng)??赡軙扔梦谋敬鎯€慢。對于這個(gè)問題,在數(shù)據(jù)庫本身負(fù)擔(dān)不重時(shí),可以采用并行取數(shù)的方法來解決,具體細(xì)節(jié)及代碼我們將在以后再詳述。

二、NoSQL數(shù)據(jù)庫

NoSQL常常被用作大數(shù)據(jù)處理,但是,它真地能獲得高性能嗎?

這要分情況,看進(jìn)行什么樣的處理。

NoSQL產(chǎn)品一般都不提供事務(wù)一致性的能力,這是在數(shù)據(jù)訪問時(shí)的動作要比關(guān)系數(shù)據(jù)庫簡單了許多,不需要考慮回滾段、多備份等問題。而且,放棄事務(wù)的NoSQL一般也更容易橫向擴(kuò)展,使用更多機(jī)器來承載更大的業(yè)務(wù)量。在這方面,NoSQL確實(shí)會有更高的性能,特別是高并發(fā)寫入時(shí)的優(yōu)勢要比關(guān)系數(shù)據(jù)庫大得多。

不過,對于單純的分析型業(yè)務(wù),卻不完全是這樣。

許多分析型關(guān)系數(shù)據(jù)庫也不考慮事務(wù)一致性的問題,訪問動作同樣也較為簡單。NoSQL不處理事務(wù)一致性帶來的性能優(yōu)勢,與這些分析型數(shù)據(jù)庫比并沒有特別的地方。

NoSQL產(chǎn)品常常使用Key-Value型存儲組織,Value的隨意性會帶來結(jié)構(gòu)多樣性的好處,即使用NoSQL存儲數(shù)據(jù)時(shí)不需要事先確定數(shù)據(jù)結(jié)構(gòu),不象關(guān)系數(shù)據(jù)庫那樣必須先建個(gè)有特定數(shù)據(jù)結(jié)構(gòu)的表才能使用,這是NoSQL非常方便的地方。

但是,多樣性和高性能是一對天生的矛盾!

多樣性意味著每條記錄的數(shù)據(jù)結(jié)構(gòu)都可能不一樣。在存儲數(shù)據(jù)時(shí)同時(shí)也要存儲結(jié)構(gòu),增大了存儲量,在解析數(shù)據(jù)時(shí)也要去匹配數(shù)據(jù)結(jié)構(gòu)中的字段,增加大了復(fù)雜度。而關(guān)系數(shù)據(jù)庫中同一表的數(shù)據(jù)結(jié)構(gòu)是確定且相同的,結(jié)構(gòu)只要存儲一份,解析數(shù)據(jù)時(shí)的字段對應(yīng)也非常簡單,當(dāng)數(shù)據(jù)量很大時(shí),這個(gè)優(yōu)勢就會非常明顯。

大多數(shù)Key-Value式的NoSQL產(chǎn)品,只是在用Key尋找Values時(shí)性能很好(這只要有個(gè)Hash索引就能夠用Key找到對應(yīng)的記錄,關(guān)系數(shù)據(jù)庫建了索引也可以),但面臨需要對數(shù)據(jù)遍歷才能完成的計(jì)算時(shí)(比如過濾條件不是針對Key的),它的性能就會遠(yuǎn)遠(yuǎn)低于確定數(shù)據(jù)結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫。把NoSQL用于高性能大數(shù)據(jù)分析業(yè)務(wù)是個(gè)錯誤的選擇,但現(xiàn)實(shí)中卻經(jīng)常有人在這么用。

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2018-02-06 23:30:07

文件存儲數(shù)據(jù)

2017-05-25 08:56:22

硬盤性能特征

2018-10-25 14:37:12

UCloud虛擬網(wǎng)絡(luò)

2011-05-13 09:46:20

MySQLNoSQL

2017-05-19 22:46:36

多維后臺性能優(yōu)化手段

2014-08-11 14:17:12

IT技術(shù)周刊

2017-05-21 22:32:39

報(bào)表性能優(yōu)化

2010-01-26 09:46:16

2011-09-19 16:47:48

大話ITIT聽聽看公有云

2013-05-21 17:14:05

開發(fā)技術(shù)周刊

2017-10-09 22:33:56

SQL等值分組有序分組

2020-03-12 16:28:07

戴爾

2012-01-05 09:34:36

新一代廣域網(wǎng)優(yōu)化

2013-01-21 13:41:59

IBMdW

2022-08-21 21:28:32

數(shù)據(jù)庫實(shí)踐

2012-11-28 11:42:28

網(wǎng)絡(luò)·安全技術(shù)周刊

2017-06-14 23:08:29

報(bào)表數(shù)據(jù)計(jì)算層

2018-06-29 10:28:43

UCloud存儲

2016-10-31 14:44:59

中國聯(lián)通智能制造運(yùn)營商

2023-11-09 08:00:00

NoSQL數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號