亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JDBC數(shù)據(jù)管理與查詢優(yōu)化的研究

        2018-09-21 10:04:50李晶晶方英蘭
        關(guān)鍵詞:數(shù)據(jù)庫(kù)價(jià)值用戶

        韓 兵,李晶晶,方英蘭

        (1.北方工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京 100144; 2.大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100144)

        0 引 言

        幾乎所有的Web應(yīng)用都離不開(kāi)數(shù)據(jù)的支撐,因此在數(shù)據(jù)的訪問(wèn)過(guò)程中,性能成為人們關(guān)注的焦點(diǎn)。隨著互聯(lián)網(wǎng)及其相關(guān)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)用戶不斷增多,網(wǎng)站的訪問(wèn)數(shù)量也急劇增加,使Web系統(tǒng)的訪問(wèn)承受的壓力越來(lái)越大,隨之而來(lái)的就是系統(tǒng)性能下降,查詢速度降低。大量Web應(yīng)用系統(tǒng)分析表明,在訪問(wèn)過(guò)程中大量結(jié)果集從數(shù)據(jù)庫(kù)傳輸?shù)綉?yīng)用程序,是查詢速度滯后的主要原因。因此,如何減少用戶的等待時(shí)間,使用戶能夠有效快速地訪問(wèn)數(shù)據(jù),成為當(dāng)前Web應(yīng)用技術(shù)研究的重點(diǎn)和熱點(diǎn)。

        眾所周知,恰當(dāng)?shù)木彺婵梢钥s短數(shù)據(jù)傳輸?shù)木嚯x,縮短系統(tǒng)響應(yīng)時(shí)間,提高數(shù)據(jù)利用率和檢索效率。對(duì)于應(yīng)用服務(wù)器端的緩存機(jī)制,當(dāng)前的做法大多是將上次訪問(wèn)過(guò)的數(shù)據(jù)保存起來(lái),并沒(méi)有區(qū)分要緩存的數(shù)據(jù)是否為熱點(diǎn)數(shù)據(jù)[1];當(dāng)需要進(jìn)行緩存置換時(shí),通常根據(jù)緩存對(duì)象的訪問(wèn)頻率或者最近訪問(wèn)時(shí)間間隔來(lái)進(jìn)行置換,考慮的因素較為單一。例如,EhCache是一種具有代表性的進(jìn)程內(nèi)緩存框架[2-3],通過(guò)手工配置來(lái)決定緩存哪些數(shù)據(jù),并提供了三種緩存置換策略:FIFO、LRU、LFU用于緩存管理。但是,該緩存框架并不能自主識(shí)別哪些是需要緩存的熱點(diǎn)數(shù)據(jù),緩存置換的方式只能選擇以上一種,不能充分利用現(xiàn)有的緩存資源。

        1 研究背景

        在Web應(yīng)用系統(tǒng)開(kāi)發(fā)中,合理有效地設(shè)計(jì)和使用緩存是提高系統(tǒng)性能的一個(gè)重要方式。在數(shù)據(jù)庫(kù)管理方面,MySQL數(shù)據(jù)庫(kù)使用了query cache[4-5]進(jìn)行數(shù)據(jù)緩存,以SQL語(yǔ)句為依據(jù)來(lái)存儲(chǔ)上一次查詢后的結(jié)果,從而提高數(shù)據(jù)庫(kù)的查詢效率,減少大量的磁盤I/O操作和CPU運(yùn)算。在Oracle數(shù)據(jù)庫(kù)中也有類似實(shí)現(xiàn),其名稱為buffer cache[6],與MySQL緩存不同的是,它可以通過(guò)加入Hint標(biāo)識(shí)符讓用戶自主選擇所要緩存的數(shù)據(jù)。但是這兩種方式都是利用了數(shù)據(jù)庫(kù)系統(tǒng)自身的機(jī)制,雖然可以提高數(shù)據(jù)庫(kù)系統(tǒng)的性能,減少Web系統(tǒng)等待時(shí)間,但是在系統(tǒng)中卻無(wú)法減少連接數(shù)據(jù)庫(kù)的時(shí)間開(kāi)銷,而創(chuàng)建數(shù)據(jù)庫(kù)連接和關(guān)閉連接又是一個(gè)非常耗時(shí)的活動(dòng),所以,不僅會(huì)使系統(tǒng)的響應(yīng)速度下降,而且會(huì)消耗大量不必要的系統(tǒng)資源。

        JDBC(Java database connectivity,Java數(shù)據(jù)庫(kù)連接)是一個(gè)用于連接并操作數(shù)據(jù)庫(kù)的規(guī)范[7],主要功能是為多種關(guān)系型數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),自身并沒(méi)有提供數(shù)據(jù)緩存功能。目前在JDBC的基礎(chǔ)上構(gòu)建了許多更高級(jí)的實(shí)現(xiàn),比較常見(jiàn)的有Hibernate、Mybatis、Spring JDBC等Web框架。使用框架可以降低系統(tǒng)開(kāi)發(fā)的復(fù)雜度,減少程序中大量重復(fù)的代碼。其中,Hibernate框架和Mybatis框架都引入了緩存機(jī)制[2,8],通過(guò)提供一級(jí)緩存和二級(jí)緩存來(lái)提高數(shù)據(jù)的查找效率。一級(jí)緩存又稱session級(jí)緩存,只能被當(dāng)前事務(wù)訪問(wèn),其生命周期對(duì)應(yīng)于事務(wù)的生命周期,當(dāng)事務(wù)結(jié)束時(shí),緩存的生命周期也就結(jié)束了。一級(jí)緩存是針對(duì)單次操作而設(shè)計(jì)的,生命周期較短,當(dāng)單次數(shù)據(jù)操作完畢后,下一次請(qǐng)求的數(shù)據(jù)將無(wú)法使用上一次緩存的數(shù)據(jù),因此對(duì)系統(tǒng)性能的改善是有限的。二級(jí)緩存(SessionFactory)是一個(gè)可配置的插件,需要通過(guò)外部技術(shù)實(shí)現(xiàn),存儲(chǔ)的介質(zhì)可以是內(nèi)存或者硬盤。但是此功能需要用戶手工配置,配置信息影響著緩存自身的性能,因此對(duì)程序員的要求較高。綜上所述,傳統(tǒng)的數(shù)據(jù)庫(kù)緩存、Web框架提供的一級(jí)緩存和二級(jí)緩存并不能有效地實(shí)現(xiàn)緩存中數(shù)據(jù)的共享并減少冗余。且一些早期的Web系統(tǒng)的持久層并沒(méi)有使用任何框架[9],而是直接使用JDBC進(jìn)行編寫,版本遷移比較困難。

        對(duì)于緩存數(shù)據(jù)的管理,文獻(xiàn)[10]提出了一種基于Chunk Folding的自適應(yīng)多租戶緩存管理機(jī)制,依據(jù)用戶當(dāng)前訪問(wèn)模式,動(dòng)態(tài)生成候選緩存單元集,并通過(guò)貪婪算法選取緩存單元集。文獻(xiàn)[11]根據(jù)用戶訪問(wèn)頻率建立對(duì)應(yīng)具有生命周期的緩存項(xiàng),維護(hù)緩存的一致性。文獻(xiàn)[12]提出了內(nèi)容分發(fā)網(wǎng)絡(luò)緩存替換策略,根據(jù)用戶訪問(wèn)特性建立相應(yīng)的代價(jià)公式,并作為計(jì)算Web內(nèi)容價(jià)值的要素。

        對(duì)于持久層采用原生JDBC編寫的Web應(yīng)用系統(tǒng),JDBC作為與數(shù)據(jù)庫(kù)進(jìn)行通信的唯一通道,如果能在獲取數(shù)據(jù)返回給用戶的同時(shí),通過(guò)分析其是否是熱點(diǎn)數(shù)據(jù),將熱點(diǎn)數(shù)據(jù)緩存起來(lái),下次發(fā)送相同請(qǐng)求時(shí),則可以直接從緩存中獲取數(shù)據(jù),無(wú)需重連數(shù)據(jù)庫(kù)。這樣對(duì)數(shù)據(jù)庫(kù)的大部分查詢就可以轉(zhuǎn)化為對(duì)查詢結(jié)果的直接獲取,能夠減少用戶等待時(shí)間,提高系統(tǒng)性能。

        2 基于JDBC數(shù)據(jù)管理的模型構(gòu)建

        JDBC是Web應(yīng)用與數(shù)據(jù)庫(kù)交互的橋梁,是標(biāo)準(zhǔn)的Java API,提供與數(shù)據(jù)庫(kù)進(jìn)行交互的通道。通過(guò)使用JDBC,編程人員可以向不同關(guān)系型數(shù)據(jù)庫(kù)發(fā)送SQL命令,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的增、刪、改、查等操作。

        JDBC數(shù)據(jù)管理的模型如圖1所示,模型主要包括三部分:頂層是應(yīng)用層;中間層是應(yīng)用服務(wù)器,緩存管理器(cache manager,CM)是該層的核心與重點(diǎn);底層是數(shù)據(jù)庫(kù)。

        圖1 JDBC數(shù)據(jù)管理模型

        應(yīng)用層負(fù)責(zé)接收用戶請(qǐng)求并發(fā)送至Web應(yīng)用服務(wù)器,并顯示數(shù)據(jù)給用戶,響應(yīng)時(shí)間決定著用戶體驗(yàn)的好壞。

        Web應(yīng)用服務(wù)器負(fù)責(zé)應(yīng)用層與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)處理及交互。在該層中增加緩存數(shù)據(jù)管理的功能,包括三部分內(nèi)容:緩存匹配、緩存置換和一致性維護(hù)。當(dāng)接收到用戶的查詢請(qǐng)求時(shí),首先將查詢的SQL語(yǔ)句進(jìn)行規(guī)范化處理(去掉多余的空格和換行,并把所有的小寫字母變成大寫字母)并交由CM,如果能夠在緩存中匹配到相應(yīng)的目標(biāo)數(shù)據(jù),則將匹配結(jié)果返回給應(yīng)用層,否則將通過(guò)JDBC連接數(shù)據(jù)庫(kù),并發(fā)送查詢命令進(jìn)行查詢,從而獲取用戶請(qǐng)求的數(shù)據(jù)。在將查詢結(jié)果返回給應(yīng)用層的同時(shí)判斷其是否是熱點(diǎn)數(shù)據(jù),如果是則將其保存在緩存空間中。對(duì)于緩存空間中的緩存置換[13],采用基于價(jià)值函數(shù)的緩存置換算法。當(dāng)緩存中的數(shù)據(jù)被修改時(shí),還需要對(duì)緩存數(shù)據(jù)的一致性[14]進(jìn)行維護(hù)。其中,緩存置換是文中研究的重點(diǎn)內(nèi)容。數(shù)據(jù)庫(kù)則用于存儲(chǔ)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理。

        3 緩存置換機(jī)制

        由于服務(wù)器端內(nèi)存資源有限,分配給查詢結(jié)果集的緩存空間大小也是有限的。當(dāng)緩存中緩存數(shù)據(jù)達(dá)到容量極限后,為了滿足新緩存需求,需要進(jìn)行緩存置換。一個(gè)好的緩存置換算法是提升緩存性能的關(guān)鍵。

        3.1 緩存對(duì)象識(shí)別

        在Web應(yīng)用中,當(dāng)用戶希望查看自己關(guān)心的內(nèi)容時(shí),Web應(yīng)用往往需要向數(shù)據(jù)庫(kù)發(fā)送查詢請(qǐng)求,通過(guò)JDBC連接數(shù)據(jù)庫(kù)來(lái)獲取相應(yīng)的結(jié)果集,最終將結(jié)果呈現(xiàn)給用戶。根據(jù)時(shí)間局部性原理,如果用戶訪問(wèn)了一段數(shù)據(jù),那么在近期再次訪問(wèn)它的可能性較大。在一個(gè)Web應(yīng)用中,用戶存在多次查看曾經(jīng)訪問(wèn)過(guò)的頁(yè)面的可能,這時(shí)需要重新向數(shù)據(jù)庫(kù)發(fā)起查詢請(qǐng)求獲得相應(yīng)的查詢結(jié)果。因此,文中將一個(gè)查詢請(qǐng)求對(duì)應(yīng)的結(jié)果集作為一個(gè)緩存項(xiàng),JDBC管理的緩存則是由不同的緩存項(xiàng)組成的集合,記為CS,每個(gè)緩存項(xiàng)記為C,其緩存價(jià)值記為V。

        為了方便描述,將緩存項(xiàng)的邏輯結(jié)構(gòu)表示為如下的六元組:

        C=(ID,R,V,L,S,A)

        元組中每個(gè)屬性的含義如下:

        (1)ID是緩存項(xiàng)唯一標(biāo)識(shí),由于緩存項(xiàng)是由查詢SQL語(yǔ)句獲得的,故ID表示經(jīng)過(guò)規(guī)范化的SQL語(yǔ)句。

        (2)R是緩存項(xiàng)的內(nèi)容,每一個(gè)緩存項(xiàng)都包含若干條相似的記錄。

        (3)V是緩存項(xiàng)的價(jià)值,當(dāng)需要進(jìn)行緩存置換時(shí),根據(jù)這個(gè)屬性選取價(jià)值小的緩存項(xiàng)進(jìn)行置換。

        (4)L是緩存對(duì)象在緩存中的位置。每當(dāng)有新的緩存項(xiàng)加入緩存時(shí),總是將其放在緩存中第一個(gè)位置。

        (5)S是緩存項(xiàng)占用存儲(chǔ)空間的大小,該因素會(huì)影響緩存置換。

        (6)A是緩存項(xiàng)從創(chuàng)建開(kāi)始到需要進(jìn)行緩存置換時(shí)的訪問(wèn)次數(shù),根據(jù)此屬性可以計(jì)算其占總訪問(wèn)次數(shù)的比重,從而計(jì)算其相對(duì)訪問(wèn)頻率。

        3.2 基于價(jià)值函數(shù)的緩存置換

        當(dāng)用戶通過(guò)Web應(yīng)用向Web服務(wù)器發(fā)送查詢請(qǐng)求時(shí),首先根據(jù)請(qǐng)求的SQL語(yǔ)句在JDBC管理的緩存中進(jìn)行匹配查找,如果能夠匹配到,即緩存命中,則將即匹配到的結(jié)果返回給用戶,并更改該緩存項(xiàng)在緩存中的位置和及其緩存價(jià)值。如果不能匹配到,則需要通過(guò)JDBC從數(shù)據(jù)庫(kù)中獲取查詢的結(jié)果集,在將結(jié)果集返回給用戶的同時(shí)將其加入緩存,如果需要進(jìn)行緩存置換,則使用基于價(jià)值函數(shù)的緩存置換算法,將緩存空間中價(jià)值較小的緩存項(xiàng)移出緩存。緩存置換原理如圖2所示。

        圖2 緩存置換原理

        文中采用的緩存置換算法對(duì)經(jīng)典置換算法(LRU)[15]作了改進(jìn),將新加入的緩存項(xiàng)和最新命中的緩存項(xiàng)都移到緩存空間的第一個(gè)位置,緩存項(xiàng)越靠前,表示在與當(dāng)前時(shí)間間隔越短的時(shí)間內(nèi),該緩存項(xiàng)被訪問(wèn)過(guò)。故采用緩存項(xiàng)的位置來(lái)計(jì)算其LRU價(jià)值[16],計(jì)算方式如下:

        (1)

        其中,N表示緩存空間中緩存項(xiàng)的總個(gè)數(shù);L表示緩存項(xiàng)在緩存空間中的位置;VLRU(LC)表示在位置LC上緩存項(xiàng)的LRU價(jià)值。

        通過(guò)式1可以看出,每個(gè)緩存項(xiàng)都存在一個(gè)LRU價(jià)值,位置值越小,LRU價(jià)值越大,值域在0和1之間。

        同時(shí)將緩存項(xiàng)的訪問(wèn)頻率所占比重以及緩存項(xiàng)占用的緩存空間大小等因素都考慮在內(nèi),故緩存項(xiàng)的緩存價(jià)值可以通過(guò)式2計(jì)算:

        (2)

        其中,VC表示緩存項(xiàng)的緩存價(jià)值;Asum表示總體的訪問(wèn)次數(shù);μ1和μ2表示兩個(gè)可調(diào)節(jié)的參數(shù),μ1表示緩存項(xiàng)的訪問(wèn)頻率對(duì)緩存價(jià)值的影響權(quán)重,μ2表示LRU價(jià)值對(duì)緩存價(jià)值的影響權(quán)重;N和L的定義參見(jiàn)式1;SC表示緩存項(xiàng)占用緩存空間的大小。

        基于價(jià)值函數(shù)的緩存置換算法流程如圖3所示。

        圖3 基于價(jià)值函數(shù)的緩存置換算法流程

        當(dāng)查詢請(qǐng)求到來(lái)時(shí),如果能夠在緩存空間中找到要請(qǐng)求的數(shù)據(jù),則將該緩存項(xiàng)移動(dòng)到緩存中的第一個(gè)位置,并將位于其之前的緩存項(xiàng)后移一個(gè)位置,表示該緩存項(xiàng)具有較小的訪問(wèn)時(shí)間間隔,然后根據(jù)式2重新計(jì)算每個(gè)緩存項(xiàng)的價(jià)值;否則,Web應(yīng)用通過(guò)JDBC從數(shù)據(jù)庫(kù)中獲取查詢結(jié)果,在將其加入緩存空間時(shí)判斷是否達(dá)到緩存置換的閾值,如果是,則根據(jù)緩存項(xiàng)的價(jià)值從小到大排序,將價(jià)值最小的一個(gè)或幾個(gè)緩存項(xiàng)移出緩存,將新的緩存項(xiàng)放入到緩存中的第一個(gè)位置;如果未達(dá)到緩存置換的閾值,則直接將新的緩存項(xiàng)放到第一個(gè)位置,然后將查詢結(jié)果返回給用戶。

        記觸發(fā)緩存置換的閾值為Y,待加入的緩存項(xiàng)為c,則算法描述如下:

        開(kāi)始:

        1.if(sizeof(CS)

        2.//緩存空間未滿,可以直接插入

        3.將每個(gè)緩存項(xiàng)往后移動(dòng)一個(gè)位置

        4.將c放入到緩存集合CS的第一個(gè)位置,且Ac+1

        5.根據(jù)式2計(jì)算每個(gè)緩存項(xiàng)的緩存價(jià)值

        6.}

        7.else{

        8.將CS中每個(gè)緩存項(xiàng)按照價(jià)值V進(jìn)行排序

        9.do{

        10.將V最大的緩存項(xiàng)移出緩存

        11.}while(sizeof(CS)

        12.將剩下的每個(gè)緩存項(xiàng)往后移動(dòng)一個(gè)位置

        13.將c放入到緩存集合CS的第一個(gè)位置,且Ac+1

        14.重新計(jì)算每個(gè)緩存項(xiàng)的緩存價(jià)值

        15.}

        結(jié)束

        4 實(shí)驗(yàn)設(shè)計(jì)與驗(yàn)證

        文中研究的是基于JDBC數(shù)據(jù)緩存的管理,通過(guò)對(duì)緩存項(xiàng)的分析,得出了基于價(jià)值函數(shù)的緩存置換算法。為了驗(yàn)證算法的有效性,本節(jié)設(shè)計(jì)了一個(gè)模擬實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境中使用的Web應(yīng)用服務(wù)器為Tomcat服務(wù)器,配置為CPU @3.40 GHz,操作系統(tǒng)為Windows 7,內(nèi)存為8 GB,數(shù)據(jù)庫(kù)使用MySQL5.5版本。

        4.1 實(shí)驗(yàn)數(shù)據(jù)

        在Web應(yīng)用系統(tǒng)中,數(shù)據(jù)的訪問(wèn)特征服從Zipf[17]分布,即系統(tǒng)中百分之二十的內(nèi)容,占據(jù)了百分之八十的訪問(wèn)量。因此,實(shí)驗(yàn)中使用一段MATLAB代碼生成符合Zipf分布的10 000個(gè)隨機(jī)數(shù),范圍是1至500,分別對(duì)應(yīng)系統(tǒng)中500個(gè)查詢請(qǐng)求,其中有80%的數(shù)字是1到500這500個(gè)數(shù)字中的20%的數(shù)字,這符合用戶的訪問(wèn)規(guī)律。式2中分別取μ1等于0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,對(duì)應(yīng)的μ2等于0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1,對(duì)于每一對(duì)參數(shù),使用基于價(jià)值函數(shù)的緩存置換算法計(jì)算命中率,實(shí)驗(yàn)結(jié)果如圖4所示??梢钥闯?,當(dāng)μ1=0.8,μ2=0.2時(shí),緩存命中率最高。

        4.2 緩存命中率對(duì)比分析

        根據(jù)上述實(shí)驗(yàn)得出的結(jié)論,取μ1為0.8、μ2為0.2繼續(xù)進(jìn)行實(shí)驗(yàn)。初始化緩存空間的大小為50 M,用10 000個(gè)隨機(jī)數(shù)代表用戶的訪問(wèn)序列,依次發(fā)送1 000,2 000,3 000,4 000,5 000,6 000,7 000,8 000,9 000,10 000個(gè)訪問(wèn)序列,通過(guò)代碼讀取訪問(wèn)序列對(duì)應(yīng)的查詢請(qǐng)求序列,向Web服務(wù)器發(fā)送相應(yīng)的SQL命令,如果緩存命中則該SQL語(yǔ)句對(duì)應(yīng)的緩存項(xiàng)的命中次數(shù)加1,如果未命中則需要通過(guò)數(shù)據(jù)庫(kù)獲取結(jié)果,將其保存在緩存空間中。對(duì)于傳統(tǒng)的LRU緩存置換算法,當(dāng)緩存空間不足時(shí)替換出訪問(wèn)時(shí)間最早的緩存項(xiàng)。而文中提出的基于價(jià)值函數(shù)的置換算法則綜合考慮了緩存項(xiàng)的訪問(wèn)頻率、訪問(wèn)時(shí)間間隔和緩存項(xiàng)的大小,選取價(jià)值最小的緩存項(xiàng)進(jìn)行置換。對(duì)于每一個(gè)訪問(wèn)序列,分別應(yīng)用LRU置換算法和基于價(jià)值函數(shù)的置換算法,統(tǒng)計(jì)總的命中次數(shù),計(jì)算兩種算法的命中率,對(duì)比結(jié)果如圖5所示。

        圖5 緩存置換算法命中率對(duì)比曲線

        從圖5可以看出,隨著訪問(wèn)數(shù)量增多,基于價(jià)值函數(shù)的緩存置換算法的緩存命中率高于傳統(tǒng)的LRU算法,所以使用基于價(jià)值函數(shù)的緩存置換算法可以提高JDBC緩存的性能。

        4.3 響應(yīng)時(shí)間對(duì)比分析

        實(shí)驗(yàn)中對(duì)于每一次發(fā)送的查詢請(qǐng)求,分別記錄了使用緩存和不使用緩存時(shí)Web服務(wù)器的響應(yīng)時(shí)間,結(jié)果如圖6所示。從圖中可以明顯看出,當(dāng)使用緩存時(shí),服務(wù)器的響應(yīng)時(shí)間明顯高于不使用緩存時(shí)的響應(yīng)時(shí)間。這是因?yàn)楫?dāng)使用緩存時(shí),不需要連接數(shù)據(jù)庫(kù)就能直接從緩存中獲取所需要的數(shù)據(jù),減少了連接數(shù)據(jù)庫(kù)和在數(shù)據(jù)庫(kù)服務(wù)器中進(jìn)行查詢的時(shí)間,提高了數(shù)據(jù)訪問(wèn)的效率。因此,文中設(shè)計(jì)的基于JDBC數(shù)據(jù)管理的模型對(duì)于JDBC緩存是非常必要的。

        圖6 服務(wù)器響應(yīng)時(shí)間對(duì)比曲線

        5 結(jié)束語(yǔ)

        通過(guò)對(duì)JDBC中的類和接口進(jìn)行修改和擴(kuò)展,設(shè)計(jì)了一個(gè)基于JDBC數(shù)據(jù)管理的模型,綜合考慮緩存項(xiàng)的訪問(wèn)頻率、訪問(wèn)時(shí)間間隔和緩存項(xiàng)占用存儲(chǔ)空間的大小等因素,提出了一種基于價(jià)值函數(shù)的緩存置換算法。通過(guò)設(shè)計(jì)模擬實(shí)驗(yàn),從緩存的命中率、服務(wù)器的響應(yīng)時(shí)間兩方面進(jìn)行分析,相比于沒(méi)有緩存功能的JDBC,該模型能夠獲得較高的訪問(wèn)效率,可以有效彌補(bǔ)使用原生JDBC進(jìn)行開(kāi)發(fā)的Web系統(tǒng)的訪問(wèn)效率問(wèn)題,提升系統(tǒng)性能。

        另外,由于改進(jìn)后的JDBC針對(duì)的是全表查詢的數(shù)據(jù),而實(shí)際應(yīng)用中往往是多表聯(lián)合查詢,因此如何細(xì)化緩存粒度,找出更高效的緩存管理方式有待進(jìn)一步的研究。

        猜你喜歡
        數(shù)據(jù)庫(kù)價(jià)值用戶
        數(shù)據(jù)庫(kù)
        一粒米的價(jià)值
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        “給”的價(jià)值
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫(kù)
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        如何獲取一億海外用戶
        久久久亚洲av成人网站 | 免费又黄又爽又猛的毛片| 999精品免费视频观看| 国产一区二区av在线观看| 国产成人精品一区二区20p| 色吊丝中文字幕| 国产日韩欧美在线| 国产精东一区二区三区| 亚洲午夜精品一区二区麻豆av| 亚洲精品无码永久在线观看你懂的 | 亚洲av高清天堂网站在线观看| 成人乱码一区二区三区av| 国产精品乱码在线观看| 无码成人AV在线一区二区| 一区二区三区日本高清| 又色又爽又高潮免费视频国产 | 性xxxx18免费观看视频| 欧美自拍视频在线| 一区二区三区国产偷拍| av日韩一区二区三区四区| 成年免费视频黄网站zxgk| 国产精品流白浆喷水| 午夜国产精品一区二区三区| 97久久婷婷五月综合色d啪蜜芽| 伊人色综合视频一区二区三区| 中文字幕一区二区三区人妻精品| 日本少妇又色又紧又爽又刺激| 小说区激情另类春色| 永久免费av无码网站性色av| 国产亚洲女人久久久久久| 久久国产精品一区av瑜伽| 国产又色又爽又高潮免费视频麻豆| 国产视频毛片| 蜜桃av噜噜噜一区二区三区| 人人妻人人澡人人爽国产| 亚洲av无码国产剧情| 亚洲AV色欲色欲WWW| 蜜臀av毛片一区二区三区| 国产精品无码专区av在线播放| 成人无码视频在线观看网站| 国产三级国产精品国产专播|