王淑梅
摘 要:內(nèi)存數(shù)據(jù)庫(kù)是適應(yīng)互聯(lián)網(wǎng)技術(shù)以及大數(shù)據(jù)的發(fā)展需求形成的,同時(shí)硬件技術(shù)的發(fā)展降低了內(nèi)存的制造成本,也為內(nèi)存數(shù)據(jù)庫(kù)的發(fā)展創(chuàng)造了更好的條件。目前已經(jīng)研發(fā)出的各種內(nèi)存數(shù)據(jù)庫(kù)在實(shí)際運(yùn)行中發(fā)揮著良好的作用。本文將圍繞內(nèi)存數(shù)據(jù)庫(kù)的一些關(guān)鍵技術(shù)展開(kāi)研究,希望能夠通過(guò)本文的分析,為數(shù)據(jù)庫(kù)的建設(shè)和發(fā)展提供更好廣闊的空間。
關(guān)鍵詞:內(nèi)存數(shù)據(jù)庫(kù);關(guān)鍵技術(shù);概論;特點(diǎn)
數(shù)據(jù)庫(kù)技術(shù)長(zhǎng)期以來(lái)扮演著重要的角色,并且具有強(qiáng)大的性能以及完備的事務(wù)處理能力,在各行各業(yè)中有著廣泛的應(yīng)用。為了實(shí)現(xiàn)數(shù)據(jù)庫(kù)更多的價(jià)值,有必要加強(qiáng)對(duì)內(nèi)存數(shù)據(jù)庫(kù)的持久化策略的研究,因而對(duì)數(shù)據(jù)庫(kù)相關(guān)技術(shù)的研究也就提出了新的要求。并且,隨著科技的進(jìn)步和信息技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)的理論基礎(chǔ)也得到了進(jìn)一步的豐富。
一、內(nèi)存數(shù)據(jù)庫(kù)概論及其特點(diǎn)
(一)內(nèi)存數(shù)據(jù)庫(kù)概論
內(nèi)存數(shù)據(jù)庫(kù)是一種能夠進(jìn)行直接操作的數(shù)據(jù)庫(kù),它是將相關(guān)的數(shù)據(jù)存儲(chǔ)在內(nèi)存之中。在計(jì)算機(jī)技術(shù)中,對(duì)內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行了規(guī)范的定義:設(shè)定數(shù)據(jù)庫(kù)系統(tǒng)DBS,該數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)庫(kù)是DB,DBM(t)代表t時(shí)刻中出現(xiàn)在DB中的數(shù)據(jù)集合,AT(t)代表t時(shí)期時(shí)處于活動(dòng)狀態(tài)的事物集合,Dt(T)則是事物集在t時(shí)刻進(jìn)行操作的數(shù)據(jù)集。在滿足運(yùn)行需要的情況下,任一時(shí)刻t,滿足T隸屬于AT(t)且Dt(T)隸屬于DBM(t),則將DBS成為一個(gè)內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng),一般用MMDBS簡(jiǎn)稱;同時(shí)稱DB為一個(gè)內(nèi)存數(shù)據(jù)庫(kù),并簡(jiǎn)稱為MMDB。
(二)內(nèi)存數(shù)據(jù)庫(kù)的特點(diǎn)
在分析內(nèi)存數(shù)據(jù)庫(kù)特點(diǎn)的時(shí)候,可以從結(jié)構(gòu)、性能等方面展開(kāi)分析。首先,內(nèi)存數(shù)據(jù)庫(kù)擁有常駐的內(nèi)存;在結(jié)構(gòu)上其設(shè)計(jì)的目標(biāo)主要是為了更好的提高CPU的效率和內(nèi)存;在性能方面,MMDB性能非常高,主要體現(xiàn)在對(duì)事物的處理不用訪問(wèn)相應(yīng)的磁盤。
二、內(nèi)存數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)
內(nèi)存數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程中所需要的存取時(shí)間較短,甚至?xí)_(dá)到10-8量級(jí)的標(biāo)準(zhǔn)。在訪問(wèn)時(shí)間上內(nèi)存的順序訪問(wèn)和隨機(jī)訪問(wèn)是一樣的,因此系統(tǒng)所追求的就是盡可能的提高內(nèi)存空間的利用效率。內(nèi)存在數(shù)據(jù)物力組織方面大多采用區(qū)-段的模式,其中段是內(nèi)外存I/O的單位,也是內(nèi)存空間分配和數(shù)據(jù)庫(kù)恢復(fù)的單位。這種關(guān)系模型主要是實(shí)現(xiàn)對(duì)存儲(chǔ)空間的劃分,通過(guò)將存儲(chǔ)空間劃分為相應(yīng)的區(qū),再將區(qū)劃分為段,形成獨(dú)立的存儲(chǔ)關(guān)系。
三、索引技術(shù)
內(nèi)存數(shù)據(jù)庫(kù)索引技術(shù)主要包括B+樹(shù)索引和T樹(shù)索引兩種形式,而全表遍歷的方式比使用索引方式效率更高,并且在操作這兩種索引技術(shù)各有優(yōu)勢(shì)。1、B+樹(shù)索引是基于二叉樹(shù)索引技術(shù)發(fā)展形成的的一種索引,該技術(shù)將節(jié)點(diǎn)設(shè)置為一個(gè)內(nèi)存頁(yè)面的大小,節(jié)點(diǎn)與節(jié)點(diǎn)之前按照其內(nèi)部元素的最大關(guān)鍵字從小到大排列,利用二分法在節(jié)點(diǎn)內(nèi)部快速的篩選出符合條件的數(shù)據(jù)。B+樹(shù)索引能夠很好的方便范圍查詢,因而能夠在磁盤數(shù)據(jù)庫(kù)中得到廣泛的應(yīng)用。但是在在內(nèi)存數(shù)據(jù)庫(kù)中,B+樹(shù)索引的最大優(yōu)勢(shì)很難得到充分的展現(xiàn),制了其在內(nèi)存數(shù)據(jù)庫(kù)中的應(yīng)用空間。2、T樹(shù)索引是一種專門針對(duì)內(nèi)存數(shù)據(jù)庫(kù)特點(diǎn)所設(shè)計(jì)的索引,通過(guò)采取在同一個(gè)滿的T樹(shù)節(jié)點(diǎn)中插入元素時(shí)的處理方式,提高了空間利用率,并且在內(nèi)存數(shù)據(jù)庫(kù)中發(fā)揮了良好的作用。
四、事務(wù)技術(shù)
事務(wù)是用戶自定義的一個(gè)數(shù)據(jù)操作集合,如果對(duì)數(shù)據(jù)的執(zhí)行出現(xiàn)問(wèn)題,就會(huì)造成整個(gè)集合中的所有操作的撤銷。只有在數(shù)據(jù)庫(kù)中只有完成了事務(wù)的提交,才能保證事務(wù)相關(guān)的數(shù)據(jù)的安全性和準(zhǔn)確性。事務(wù)的備份恢復(fù)策略是確保數(shù)據(jù)庫(kù)重啟后能夠保持一致的重要策略。數(shù)據(jù)一致性是事務(wù)的備份與恢復(fù)機(jī)制的主要目的,而事務(wù)的備份與恢復(fù)機(jī)制通常情況下包含正常運(yùn)行時(shí)的備份恢復(fù)與意外重啟后的恢復(fù)兩種。1、數(shù)據(jù)庫(kù)正常運(yùn)行的情況下,可以設(shè)置相應(yīng)大的回滾區(qū)對(duì)事務(wù)進(jìn)行回滾。與此同時(shí),還有影子內(nèi)存的備份恢復(fù)的策略,這種操作是指事務(wù)中的所有操作都在影子內(nèi)存中進(jìn)行,通過(guò)影子內(nèi)存實(shí)現(xiàn)對(duì)數(shù)據(jù)的替換,如果這種功能運(yùn)行不正確,就會(huì)導(dǎo)致影子內(nèi)存丟失,從而能夠很好的減小事務(wù)回滾的開(kāi)銷。2、當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)意外重啟的情況后,日志的策略可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的恢復(fù),現(xiàn)在使用比較常見(jiàn)的日志策略有Undo日志、Redo日志與Undo/Redo日志三種。
五、并發(fā)控制技術(shù)
并發(fā)控制技術(shù)是數(shù)據(jù)庫(kù)中的關(guān)鍵技術(shù)之一。根據(jù)事務(wù)的執(zhí)行順序,可以分為串行化事務(wù)和并行化事務(wù),指一個(gè)事務(wù)執(zhí)行完成之后直接執(zhí)行下一個(gè)事務(wù)的稱為串行化事務(wù),以同一時(shí)間接收多個(gè)事務(wù)的則稱為并行化事務(wù)。并行事務(wù)可以有效的提高資源的利用率,因而得到了廣泛的應(yīng)用,但同時(shí)也存在數(shù)據(jù)庫(kù)資源訪問(wèn)沖突的問(wèn)題,最終可能會(huì)引發(fā)丟失修改數(shù)據(jù)、讀“臟”數(shù)據(jù)、數(shù)據(jù)不可重復(fù)讀取的問(wèn)題。基于鎖的并發(fā)控制技術(shù)、基于時(shí)間戳的并發(fā)控制技術(shù)以及基于有效檢查點(diǎn)的并發(fā)控制技術(shù)這三種技術(shù)是根據(jù)事務(wù)的并發(fā)控制技術(shù)研發(fā)的控制技術(shù),結(jié)合不同級(jí)別的封鎖協(xié)議,實(shí)現(xiàn)了數(shù)據(jù)的可重復(fù)讀取。鎖的粒度是內(nèi)存數(shù)據(jù)庫(kù)與磁盤數(shù)據(jù)庫(kù)最顯著的區(qū)別,細(xì)粒度鎖是指對(duì)數(shù)據(jù)庫(kù)中記錄、塊、或者索引節(jié)點(diǎn)進(jìn)行加鎖,在內(nèi)存數(shù)據(jù)中,通過(guò)采用不同程度的粒度鎖,可以有效縮短事務(wù)的處理時(shí)間,便于進(jìn)行事務(wù)處理。下面針對(duì)兩種常用的粒度鎖進(jìn)行細(xì)致的分析。
(一)多粒度鎖
內(nèi)存數(shù)據(jù)不但能夠提供系統(tǒng)級(jí)或表級(jí)鎖,還能提供更加精細(xì)的塊級(jí)鎖與行級(jí)鎖,并且在實(shí)際的運(yùn)行過(guò)程中,可以根據(jù)需要加鎖的對(duì)象以及數(shù)據(jù)庫(kù)系統(tǒng)中并發(fā)事務(wù)的總量,通過(guò)綜合的分析和研究選擇最佳粒度的鎖。在對(duì)內(nèi)存數(shù)據(jù)庫(kù)加鎖的時(shí)候,要堅(jiān)持優(yōu)先選擇粗粒度鎖的原則,并且在數(shù)據(jù)庫(kù)并發(fā)事務(wù)較少的情況下進(jìn)行優(yōu)化選擇。如果并發(fā)事務(wù)較多,則需要根據(jù)加鎖對(duì)象的級(jí)別選擇同等級(jí)別的鎖。多粒度鎖的方式導(dǎo)致了在對(duì)某對(duì)象顯式加鎖的同時(shí)還可能對(duì)其他對(duì)象隱式加鎖,隱式加鎖按照樹(shù)形加鎖協(xié)議進(jìn)行加鎖。多粒度加鎖結(jié)構(gòu)中每一個(gè)節(jié)點(diǎn)都與數(shù)據(jù)庫(kù)的邏輯等級(jí)進(jìn)行對(duì)應(yīng),并且每一個(gè)節(jié)點(diǎn)都可以顯式的進(jìn)行加鎖,提高了數(shù)據(jù)庫(kù)的并發(fā)性。由于顯式鎖和隱式鎖有著完全相同的作用,所以在對(duì)某節(jié)點(diǎn)顯式加鎖之前需要遍歷其所有的子孫節(jié)點(diǎn)判斷在子孫節(jié)點(diǎn)上是否已顯式的加上了不相容的鎖。所以在此基礎(chǔ)上又提出了意向鎖的改進(jìn)方案。
(二)意向鎖
意向鎖也可以稱為是一種邏輯規(guī)則,并且在該規(guī)則中明確了當(dāng)向某個(gè)節(jié)點(diǎn)加上意向鎖時(shí),就相當(dāng)于顯式的對(duì)當(dāng)前節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)進(jìn)行了加鎖。這樣通過(guò)一個(gè)節(jié)點(diǎn)上意向鎖的種類,就可以判斷其子孫節(jié)點(diǎn)的加鎖情況,而無(wú)需對(duì)子孫節(jié)點(diǎn)進(jìn)行遍歷。而對(duì)于一個(gè)節(jié)點(diǎn)顯式加鎖之前,需要對(duì)該節(jié)點(diǎn)的所有父親節(jié)點(diǎn)加意向鎖。意向鎖有三種:意向共享鎖(IS鎖)、意向排它鎖(IX鎖)、共享意向排它鎖(SIX鎖),當(dāng)向一個(gè)節(jié)點(diǎn)加IS鎖時(shí),等價(jià)于在其所有子孫節(jié)點(diǎn)上顯式的加共享鎖,當(dāng)向一個(gè)節(jié)點(diǎn)加IX鎖時(shí),可以在其子孫節(jié)點(diǎn)上加共享鎖和排它鎖,若向一個(gè)節(jié)點(diǎn)加SIX鎖,相當(dāng)于對(duì)該節(jié)點(diǎn)的直接孩子節(jié)點(diǎn)加共享鎖,而對(duì)其余節(jié)點(diǎn)加互斥鎖。
六、結(jié)語(yǔ)
隨著內(nèi)存數(shù)據(jù)庫(kù)的應(yīng)用范圍逐漸擴(kuò)大,人們對(duì)數(shù)據(jù)庫(kù)的研究也逐漸深入,通過(guò)對(duì)實(shí)際的應(yīng)用效果進(jìn)行深入的分析,不斷的完善著數(shù)據(jù)庫(kù)技術(shù)。通過(guò)對(duì)數(shù)據(jù)庫(kù)技術(shù)中的關(guān)鍵技術(shù)進(jìn)行分析,能發(fā)現(xiàn)其在數(shù)據(jù)處理方面存在的優(yōu)勢(shì),因而對(duì)數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用也就成為了一種發(fā)展方向。在實(shí)際的研究和運(yùn)行中,結(jié)合數(shù)據(jù)庫(kù)技術(shù)的特點(diǎn),熟悉其中的索引技術(shù)、事務(wù)技術(shù)、并發(fā)控制技術(shù)等關(guān)鍵技術(shù),深入分析,為數(shù)據(jù)庫(kù)的發(fā)展提供更有利的條件。
參考文獻(xiàn):
[1]張浩陽(yáng).內(nèi)存數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)的研究與設(shè)計(jì)[D].四川師范大學(xué),2016.
[2]郭一帆,陳亞峰.內(nèi)存數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)研究[J].數(shù)字技術(shù)與應(yīng)用,2013,05:141.
[3]段敏娟,何強(qiáng).淺析內(nèi)存數(shù)據(jù)庫(kù)中的幾種關(guān)鍵技術(shù)[J].技術(shù)與市場(chǎng),2015,01:69.