|
2009年數(shù)據(jù)庫(kù)市場(chǎng)最大的事件就是Oracle大手筆收購(gòu)Sun,以及由此引發(fā)的MySQL是生是死的討論。2010年數(shù)據(jù)庫(kù)將何去何從,本文將為大家簡(jiǎn)單分析一下。
磁盤是當(dāng)前主流數(shù)據(jù)庫(kù)的主要瓶頸所在,而內(nèi)存數(shù)據(jù)庫(kù)是高響應(yīng)要求數(shù)據(jù)庫(kù)系統(tǒng)的最佳,甚至唯一選擇。但是如何在性能和價(jià)格上取得一種平衡呢?
2009年數(shù)據(jù)庫(kù)行業(yè)精彩紛呈,各大主流收費(fèi)和免費(fèi)數(shù)據(jù)庫(kù)軟件繼續(xù)發(fā)力,技術(shù)革新和收購(gòu)合并的大手筆應(yīng)接不暇,新型數(shù)據(jù)庫(kù)軟件廠商異軍突起。
內(nèi)存數(shù)據(jù)庫(kù)應(yīng)用日漸廣泛
數(shù)據(jù)庫(kù)技術(shù)在幾十年的發(fā)展中,功能逐漸完善,現(xiàn)在主流的數(shù)據(jù)庫(kù)軟件動(dòng)輒支持上TB的數(shù)據(jù)容量,而且經(jīng)過(guò)各種技術(shù)革新后,能支持大業(yè)務(wù)并發(fā)操作。但一般的數(shù)據(jù)庫(kù)軟件,數(shù)據(jù)都無(wú)一例外的存儲(chǔ)于磁盤,數(shù)據(jù)庫(kù)軟件在需要使用到某份數(shù)據(jù)時(shí),通過(guò)操作系統(tǒng)調(diào)用,從磁盤讀取出來(lái),讀入到內(nèi)存中,進(jìn)行運(yùn)算、比較或其他文本型操作,從而實(shí)現(xiàn)業(yè)務(wù)需求。
磁盤是當(dāng)前主流數(shù)據(jù)庫(kù)的主要瓶頸所在。一般硬盤的讀取速度為毫秒級(jí)時(shí)采用光纖盤陣,并部署成RAID機(jī)制,如讀寫速度更快的RAID0,但仍然逃脫不出毫秒級(jí)的范疇。畢竟,比起CPU和內(nèi)存而言,磁盤的讀取太慢,每次讀取耗時(shí)需若干毫秒,內(nèi)存的讀取速度為n秒級(jí),即每次內(nèi)存讀取僅需10-9秒。這意味這內(nèi)存每秒的讀寫次數(shù),是磁盤上百萬(wàn)倍。
根據(jù)多年DBA經(jīng)驗(yàn),數(shù)據(jù)庫(kù)性能優(yōu)化,實(shí)際上就是減少或盡可能的避免磁盤讀寫。衡量一個(gè)數(shù)據(jù)庫(kù)調(diào)優(yōu)效果的好壞,也在于此。因?yàn)橹挥写疟P讀寫減少了,CPU使用才會(huì)減少,內(nèi)存的耗費(fèi)也不至于太過(guò)巨大。
磁盤技術(shù)即使不斷革新,到現(xiàn)在出現(xiàn)的SSD(Solid State Disk)技術(shù),但對(duì)要求極其苛刻的大型數(shù)據(jù)庫(kù)而言,仍然是杯水車薪。測(cè)試結(jié)果表明,SSD技術(shù)在隨機(jī)讀寫方面的性能,比普通硬盤提升了約5倍。而且SSD技術(shù)目前不是特別完善,還存在硬盤容量小,價(jià)格過(guò)于昂貴等致命傷。
而SSD泛指使用NAND Flash組成的固態(tài)硬盤,其特別之處在于沒(méi)有機(jī)械結(jié)構(gòu),利用傳統(tǒng)的NAND Flash特性,以區(qū)塊寫入和抹除的方式作讀寫的功能,因此在讀寫的效率上,非常依賴讀寫技術(shù)上的設(shè)計(jì),與目前的傳統(tǒng)硬盤相較,具有低耗電、耐震、穩(wěn)定性高、耐低溫等優(yōu)點(diǎn)。
筆者前段希望在SUN新型號(hào)服務(wù)器上使用SSD磁盤,但被告知僅支持36GB的容量。這簡(jiǎn)直就是開玩笑嘛,誰(shuí)家的數(shù)據(jù)庫(kù)只有幾十GB?
內(nèi)存數(shù)據(jù)庫(kù)是高響應(yīng)要求數(shù)據(jù)庫(kù)系統(tǒng)的最佳、甚至唯一選擇。現(xiàn)在,不僅僅電信級(jí)數(shù)據(jù)庫(kù),甚至包括大型互聯(lián)網(wǎng)數(shù)據(jù)庫(kù),也要求業(yè)務(wù)操作的響應(yīng)時(shí)間為毫秒級(jí)。這對(duì)數(shù)據(jù)庫(kù)的響應(yīng)速度提出了很苛刻的要求。唯一的途徑就是,將數(shù)據(jù)緩存在內(nèi)存里。讓應(yīng)用程序直接從內(nèi)存里讀寫數(shù)據(jù),規(guī)避硬盤讀寫,從而極大的提高數(shù)據(jù)庫(kù)對(duì)外性能。
現(xiàn)在內(nèi)存數(shù)據(jù)庫(kù)技術(shù)已經(jīng)相對(duì)完善,有些主流大廠商已自主研發(fā)、或收購(gòu)第三方軟件商,實(shí)現(xiàn)了該技術(shù)。主流內(nèi)存數(shù)據(jù)庫(kù)技術(shù)解決了一個(gè)關(guān)鍵問(wèn)題,其一,內(nèi)存數(shù)據(jù)同步到磁盤的問(wèn)題。
內(nèi)存的數(shù)據(jù)畢竟是暫存,數(shù)據(jù)終歸要保存在硬盤上,一旦數(shù)據(jù)庫(kù)服務(wù)器因?yàn)閿嚯姷葐?wèn)題意外關(guān)機(jī)或重啟,內(nèi)存的數(shù)據(jù)肯定丟失殆盡。因此必須保證數(shù)據(jù)周期性存儲(chǔ)到磁盤上,但又不允許因批量磁盤存入,而導(dǎo)致影響性能。
數(shù)據(jù)中心軟件廠商異軍突起
隨著各行各業(yè)使用IT系統(tǒng)時(shí)間的加長(zhǎng),積累的歷史數(shù)據(jù)越來(lái)越多,另外,類似網(wǎng)絡(luò)游戲和C2C、B2C應(yīng)用網(wǎng)站的大規(guī)模興起,眾多公司對(duì)海量數(shù)據(jù)的存儲(chǔ),提取和處理,挖掘及分析提煉的要求變得愈加迫切。
傳統(tǒng)的主流數(shù)據(jù)庫(kù)軟件在大型數(shù)據(jù)中心上顯得很是力不從心。很多企業(yè)的數(shù)據(jù)中心,一天的數(shù)據(jù)導(dǎo)人就達(dá)到幾百GB,甚至若干TB,而且因?yàn)闃I(yè)務(wù)的需要,數(shù)據(jù)庫(kù)軟件需完成的操作不僅僅包括這些數(shù)據(jù)的插入,還包括將這些數(shù)據(jù)與歷史已有數(shù)據(jù)的對(duì)比,更新和刪除。傳統(tǒng)的數(shù)據(jù)庫(kù)軟件,無(wú)論采用多先進(jìn)的技術(shù),有一個(gè)事情是一定的,即基于單一的數(shù)據(jù)庫(kù),雖然這個(gè)數(shù)據(jù)庫(kù)后面可以是SAN等很多磁盤陣列構(gòu)成的存儲(chǔ)網(wǎng)絡(luò)予以支持。
這意味著,無(wú)論如何,你的處理速度受到極大的限制,即使有些數(shù)據(jù)庫(kù)廠商可以實(shí)現(xiàn)雙節(jié)點(diǎn)甚至多節(jié)點(diǎn)對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)的并發(fā)訪問(wèn),但多節(jié)點(diǎn)的前置服務(wù)器,只能解決CPU和內(nèi)存的問(wèn)題,而磁盤作為主要瓶頸依然存在。另外,采用SAN存儲(chǔ)網(wǎng)絡(luò)等一個(gè)致命缺點(diǎn)是,價(jià)格過(guò)于昂貴,這并非一般公司所能接受,維護(hù)成本也相對(duì)非常的高。
有辦法解決大型數(shù)據(jù)中心的需求,且付出的費(fèi)用卻相對(duì)十分低廉呢?答案是肯定的。現(xiàn)在已有類似的數(shù)據(jù)庫(kù)廠商實(shí)現(xiàn)了此功能。這實(shí)際上是對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)軟件設(shè)計(jì)和功能的顛覆性提高。這種實(shí)現(xiàn)的方法,類似于化整為零的思想。即,單個(gè)數(shù)據(jù)庫(kù)無(wú)法支持,那我們就采用多個(gè)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)。這時(shí),每個(gè)數(shù)據(jù)庫(kù)相互獨(dú)立,但又對(duì)外展現(xiàn)為單一的個(gè)體,供外部應(yīng)用的訪問(wèn)和操作。
這些數(shù)據(jù)庫(kù)使用各自的CPU、內(nèi)存和磁盤,既然單一數(shù)據(jù)庫(kù)的磁盤存儲(chǔ)無(wú)法滿足需求,那我們?cè)O(shè)計(jì)這樣的系統(tǒng),允許無(wú)限制的增加數(shù)據(jù)庫(kù),這樣就規(guī)避了單一存儲(chǔ)性能的問(wèn)題,也規(guī)避了價(jià)格昂貴的SAN等存儲(chǔ)網(wǎng)絡(luò)。
這種架構(gòu)下的服務(wù)器,采用價(jià)格低廉的PC服務(wù)器即可,費(fèi)用比采用小型機(jī)等的數(shù)據(jù)庫(kù),直降很多,另外,甚至不需采用服務(wù)器外掛的磁盤陣列了,直接使用服務(wù)器本地硬盤即可,現(xiàn)在ITB的SATA硬盤已經(jīng)能夠做到價(jià)格低廉且比較穩(wěn)定。
這種架構(gòu)下的數(shù)據(jù)庫(kù)軟件,完全可以采用免費(fèi)穩(wěn)定的產(chǎn)品。根據(jù)一些網(wǎng)絡(luò)游戲公司的對(duì)比測(cè)試,采用專業(yè)數(shù)據(jù)中心軟件和架構(gòu)下的數(shù)據(jù)提取等操作,并對(duì)比傳統(tǒng)數(shù)據(jù)庫(kù)軟件,耗費(fèi)的時(shí)間從20到30小時(shí),縮短到1到2小時(shí),速度提高很多倍。而且提升的速度,隨著獨(dú)立數(shù)據(jù)庫(kù)的增加,可提升空間更多。
開源數(shù)據(jù)庫(kù)前景仍然光明
今年Oracle收購(gòu)SUN的大事件,曾經(jīng)讓業(yè)界十分擔(dān)心MySQL的存亡問(wèn)題,畢竟MySQL早已被SUN公司收購(gòu)。MySQL是免費(fèi)開源數(shù)據(jù)庫(kù)軟件,這和Oracle這種純商業(yè)軟件是直接沖突的。Oracle之前已收購(gòu)了INNODB數(shù)據(jù)引擎,而后者恰恰是吸引大量用戶依然使用MySQL的十分重要的一個(gè)理由。MySQL數(shù)據(jù)庫(kù)最令人欣賞的特性之一在于,他是一種開放式的架構(gòu),甚至允許第三方開發(fā)自己的數(shù)據(jù)存儲(chǔ)引擎,這吸引了大量第三方公司的注意并樂(lè)于投身于此。但最優(yōu)秀的引擎當(dāng)屬INNODB,INNODB支持事務(wù)處理,鎖的機(jī)制做得也不錯(cuò),足以支持中小企業(yè)的一般性業(yè)務(wù)需求。并可見(jiàn),Oracle對(duì)MySQL窺視已久,并非因其是免費(fèi)開源數(shù)據(jù)庫(kù)而忽略。
因此Oracle是否讓MySQL自此消失,或者對(duì)MySQL不管不問(wèn),任其自然消亡嗎?目前來(lái)看,這種可能性不大。MySQL因其免費(fèi)、開源、結(jié)構(gòu)開放,且對(duì)事務(wù)的支持較好等特性,占據(jù)了大量的市場(chǎng),并擁有自己堅(jiān)定的使用群體。MySQL目前受到不僅僅預(yù)算緊張的中小企業(yè)的青睞,而且也受到新型行業(yè)的廣泛應(yīng)用。
互聯(lián)網(wǎng)時(shí)代已經(jīng)真正開始,一個(gè)搜索引擎,購(gòu)物網(wǎng)站或者平臺(tái),一個(gè)網(wǎng)絡(luò)游戲,往往并發(fā)使用者數(shù)以十萬(wàn)。這樣龐大的并發(fā)訪問(wèn),即使如Oracle數(shù)據(jù)庫(kù)系統(tǒng),也無(wú)法支撐。反而通過(guò)化整為零的思想,利用若干MySQL數(shù)據(jù)庫(kù),組合起來(lái)得以實(shí)現(xiàn)。
事實(shí)上,Oracle在最近開始透露其將來(lái)針對(duì)MySQL的真正意圖,即利用MySQL和微軟的Microsoft SQL Server在中小企業(yè)進(jìn)行抗衡。Microsoft SQL Server因?yàn)槠漭^低的價(jià)格,不斷改進(jìn)的數(shù)據(jù)庫(kù)技術(shù)和較簡(jiǎn)單的管理維護(hù)等特性,也占據(jù)了不小的市場(chǎng)。Oracle數(shù)據(jù)庫(kù)的劣勢(shì)之一是,日常運(yùn)維和維護(hù)成本較高,企業(yè)為此負(fù)擔(dān)的人員成本和后期投入較多,而這剛好是Microsoft SQL Server和MySQL的優(yōu)勢(shì)所在。
it知識(shí)庫(kù):2010年數(shù)據(jù)庫(kù)市場(chǎng)展望 開源數(shù)據(jù)庫(kù)前景光明,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。