一種基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于企業(yè)信息化技術(shù)領(lǐng)域,特別是涉及一種基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法。
【背景技術(shù)】
[0002]在信息化日益普及的大背景下,信息系統(tǒng)的大型化和復(fù)雜化是必然趨勢(shì)。目前大型的信息系統(tǒng),在數(shù)據(jù)庫(kù)層面大都采用讀寫分離技術(shù),一個(gè)主庫(kù)和多個(gè)從庫(kù)。主庫(kù)負(fù)責(zé)數(shù)據(jù)更新和實(shí)時(shí)數(shù)據(jù)查詢,從庫(kù)負(fù)責(zé)非實(shí)時(shí)數(shù)據(jù)查詢。因?yàn)樵趯?shí)際的應(yīng)用中,數(shù)據(jù)庫(kù)都是讀多寫少(即讀取數(shù)據(jù)的頻率高,更新數(shù)據(jù)的頻率相對(duì)較少),而系統(tǒng)越復(fù)雜、系統(tǒng)數(shù)據(jù)越多、查詢語(yǔ)句越復(fù)雜,讀取數(shù)據(jù)的耗時(shí)就越長(zhǎng),占用數(shù)據(jù)庫(kù)服務(wù)器的CPU也較多,從而降低了系統(tǒng)性能,影響用戶體驗(yàn)。而現(xiàn)有的數(shù)據(jù)庫(kù)讀寫分離技術(shù)只是單純地將讀寫庫(kù)進(jìn)行分離來(lái)提高并發(fā)率,而沒(méi)有解決諸如內(nèi)外網(wǎng)之間的數(shù)據(jù)同步不方便,庫(kù)體過(guò)大及查詢語(yǔ)句復(fù)雜導(dǎo)致查詢慢等問(wèn)題。
【發(fā)明內(nèi)容】
[0003]為了解決上述問(wèn)題,本發(fā)明的目的在于提供一種基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法。
[0004]為了達(dá)到上述目的,本發(fā)明提供的基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法包括按順序進(jìn)行的下列步驟:
[0005]步驟一:內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)存儲(chǔ)分區(qū)、讀寫分庫(kù)的SOl階段:將信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)進(jìn)行讀寫分離,并將數(shù)據(jù)分區(qū)存儲(chǔ);
[0006]步驟二:快照到外網(wǎng)后合并分區(qū)到同一實(shí)例多個(gè)庫(kù)的S02階段:將步驟一中分離的內(nèi)網(wǎng)數(shù)據(jù)庫(kù)快照到步驟一中分離的外網(wǎng)數(shù)據(jù)庫(kù)中,然后將步驟一中不同分區(qū)下的數(shù)據(jù)庫(kù)合并到同一實(shí)例中;
[0007]步驟三:優(yōu)化分布式數(shù)據(jù)庫(kù)查詢的S03階段:將大數(shù)據(jù)集中查詢分解為可匹配步驟二中的內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)且自身邏輯相關(guān)聯(lián)的幾個(gè)小數(shù)據(jù)集進(jìn)行并發(fā)查詢;
[0008]步驟四:優(yōu)化分布式數(shù)據(jù)庫(kù)寫服務(wù)的S04階段:結(jié)合步驟三得到的優(yōu)化查詢,通過(guò)并發(fā)寫程序與步驟一中的分區(qū)策略將不同的數(shù)據(jù)寫入分配到不同的數(shù)據(jù)庫(kù)中,最終得到讀寫分離的數(shù)據(jù)庫(kù)和匹配讀寫分離數(shù)據(jù)庫(kù)的優(yōu)化方法;
[0009]步驟五:記錄優(yōu)化日志的S05階段:記錄步驟二中的快照過(guò)程和步驟三、步驟四中的優(yōu)化過(guò)程日志及步驟三、步驟四的優(yōu)化執(zhí)行結(jié)果日志。
[0010]在步驟三中,所述的分布式數(shù)據(jù)庫(kù)查詢主要是將客戶程序提交的數(shù)據(jù)庫(kù)查詢解析成多條相對(duì)簡(jiǎn)單的數(shù)據(jù)庫(kù)查詢語(yǔ)句,并向存儲(chǔ)在不同分區(qū)上的數(shù)據(jù)庫(kù)同時(shí)發(fā)起查詢請(qǐng)求,通過(guò)并發(fā)的速度優(yōu)勢(shì)和簡(jiǎn)單語(yǔ)句查詢時(shí)間短的優(yōu)勢(shì)來(lái)提升查詢性能,在查詢完結(jié)果集后,引擎將查詢結(jié)果組織成一個(gè)數(shù)據(jù)集返回給客戶程序。
[0011]本發(fā)明提供的基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法的有益效果:
[0012]本發(fā)明宗旨是以數(shù)據(jù)分散存儲(chǔ),查詢并發(fā)執(zhí)行為主線索即有效的組織了海量數(shù)據(jù),提升了海量數(shù)據(jù)的查詢性能,是對(duì)現(xiàn)階段海量數(shù)據(jù)、高并發(fā)查詢平臺(tái)的創(chuàng)造性優(yōu)化設(shè)
i+o
【附圖說(shuō)明】
[0013]圖1為本發(fā)明提供的基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法流程圖。
[0014]圖2為信息系統(tǒng)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)水平分區(qū)示意圖。
[0015]圖3為信息系統(tǒng)外網(wǎng)數(shù)據(jù)庫(kù)示意圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提供的基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法進(jìn)行詳細(xì)說(shuō)明。
[0017]如圖1所示,本發(fā)明提供的基于讀寫分離的信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)優(yōu)化方法包括按順序進(jìn)行的下列步驟:
[0018]步驟一:內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)存儲(chǔ)分區(qū)、讀寫分庫(kù)的SOl階段:將信息系統(tǒng)內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)進(jìn)行讀寫分離,并將數(shù)據(jù)分區(qū)存儲(chǔ);
[0019]步驟二:快照到外網(wǎng)后合并分區(qū)到同一實(shí)例多個(gè)庫(kù)的S02階段:將步驟一中分離的內(nèi)網(wǎng)數(shù)據(jù)庫(kù)快照到步驟一中分離的外網(wǎng)數(shù)據(jù)庫(kù)中,然后將步驟一中不同分區(qū)下的數(shù)據(jù)庫(kù)合并到同一實(shí)例中;
[0020]步驟三:優(yōu)化分布式數(shù)據(jù)庫(kù)查詢的S03階段:將大數(shù)據(jù)集中查詢分解為可匹配步驟二中的內(nèi)外網(wǎng)數(shù)據(jù)庫(kù)且自身邏輯相關(guān)聯(lián)的幾個(gè)小數(shù)據(jù)集進(jìn)行并發(fā)查詢;
[0021]步驟四:優(yōu)化分布式數(shù)據(jù)庫(kù)寫服務(wù)的S04階段:結(jié)合步驟三得到的優(yōu)化查詢,通過(guò)并發(fā)寫程序與步驟一中的分區(qū)策略將不同的數(shù)據(jù)寫入分配到不同的數(shù)據(jù)庫(kù)中,最終得到讀寫分離的數(shù)據(jù)庫(kù)和匹配讀寫分離數(shù)據(jù)庫(kù)的優(yōu)化方法;
[0022]步驟五:記錄優(yōu)化日志的S05階段:記錄步驟二中的快照過(guò)程和步驟三、步驟四中的優(yōu)化過(guò)程日志及步驟三、步驟四的優(yōu)化執(zhí)行結(jié)果日志。
[0023]在步驟一中,所述的外網(wǎng)數(shù)據(jù)庫(kù)通常包括系統(tǒng)關(guān)鍵數(shù)據(jù)與敏感數(shù)據(jù),為適應(yīng)數(shù)據(jù)量擴(kuò)展需要及高性能完成數(shù)據(jù)庫(kù)的寫入與查詢;首先將信息系統(tǒng)內(nèi)外網(wǎng)的數(shù)據(jù)庫(kù)進(jìn)行讀寫分離,并將數(shù)據(jù)分區(qū)存儲(chǔ);數(shù)據(jù)庫(kù)讀寫分離是為解決原有的信息系統(tǒng)寫入數(shù)據(jù)量大,將讀操作單獨(dú)分享到一個(gè)數(shù)據(jù)庫(kù)中,以避免讀操作對(duì)寫數(shù)據(jù)庫(kù)資源的占用。數(shù)據(jù)庫(kù)分區(qū)存儲(chǔ)意在解決將大規(guī)模數(shù)據(jù)分散存儲(chǔ),以提升數(shù)據(jù)庫(kù)查詢效率。
[0024]在步驟二中,所述的快照是創(chuàng)建與內(nèi)網(wǎng)數(shù)據(jù)庫(kù)事務(wù)一致的只讀靜態(tài)視圖,通過(guò)快照映射(FlashCopy)將其恢復(fù)到外網(wǎng)數(shù)據(jù)庫(kù)上,解決內(nèi)外網(wǎng)隔離問(wèn)題,建立內(nèi)網(wǎng)數(shù)據(jù)庫(kù)更新到外網(wǎng)數(shù)據(jù)庫(kù)的有效通道,并將不同分區(qū)下的數(shù)據(jù)庫(kù)合并到同一實(shí)例中,以便客戶程序的一次查詢可以在負(fù)載均衡的一臺(tái)機(jī)器上完成。信息系統(tǒng)外網(wǎng)的查詢服務(wù)完全基于快照來(lái)完成。
[0025]在步驟三中,所述的分布式數(shù)據(jù)庫(kù)查詢是提升查詢性能的關(guān)鍵。本發(fā)明創(chuàng)造性地將大數(shù)據(jù)集中查詢分解為邏輯相關(guān)的幾個(gè)小數(shù)據(jù)集并發(fā)查詢,理論上讓一次查詢的時(shí)間顯著降低:優(yōu)化后的查詢時(shí)間=小數(shù)據(jù)集的最大查詢時(shí)間。查詢后組織查詢結(jié)果,以透明的單次查詢反饋給客戶程序,可大大提升查詢效率。
[0026]在步