自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

第42期:RDB與NoSQL的訪(fǎng)問(wèn)性能

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

第42期:RDB與NoSQL的訪(fǎng)問(wèn)性能

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

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

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

1. 緊湊性與壓縮手段

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2018-02-06 23:30:07

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

2017-05-25 08:56:22

硬盤(pán)性能特征

2018-10-25 14:37:12

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

2011-05-13 09:46:20

MySQLNoSQL

2017-05-19 22:46:36

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

2014-08-11 14:17:12

IT技術(shù)周刊

2017-05-21 22:32:39

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

2013-05-21 17:14:05

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

2010-01-26 09:46:16

2011-09-19 16:47:48

大話(huà)ITIT聽(tīng)聽(tīng)看公有云

2012-01-05 09:34:36

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

2013-01-21 13:41:59

IBMdW

2017-10-09 22:33:56

SQL等值分組有序分組

2020-03-12 16:28:07

戴爾

2012-11-28 11:42:28

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

2016-10-31 14:44:59

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

2022-08-21 21:28:32

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

2017-05-22 22:23:29

索引本質(zhì)排序

2017-05-24 17:08:29

OLAP

2019-10-25 17:00:17

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊
點(diǎn)贊
收藏

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