數(shù)據(jù)庫(kù)分表建立及查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)分表建立及查詢方法,更具體地,涉及基于分表鍵值的數(shù)據(jù)庫(kù)分表建立及查詢方法。
【背景技術(shù)】
[0002]目前,隨著計(jì)算機(jī)和網(wǎng)絡(luò)應(yīng)用的日益廣泛以及不同領(lǐng)域的業(yè)務(wù)種類的日益豐富,對(duì)包含海量數(shù)據(jù)的數(shù)據(jù)庫(kù)記錄總表進(jìn)行分表(即將記錄總表按照設(shè)定的規(guī)則切分成一組子表,每個(gè)子表反映該記錄總表的一部分)并隨后針對(duì)各個(gè)分表進(jìn)行查詢操作變得越來(lái)越重要。
[0003]在現(xiàn)有的技術(shù)方案中,各個(gè)外部應(yīng)用均具有針對(duì)不同的分表而開發(fā)的特定的查詢模塊,并通過(guò)該查詢模塊對(duì)不同的分表進(jìn)行查詢操作。
[0004]然而,現(xiàn)有的技術(shù)方案存在如下問(wèn)題:由于各個(gè)外部應(yīng)用需要針對(duì)不同的分表開發(fā)特定的查詢模塊(即特定的查詢代碼),故開發(fā)和維護(hù)成本較高,并且由于針對(duì)不同分表的查詢操作的差異性,總的查詢效率被降低。
[0005]因此,存在如下需求:提供基于統(tǒng)一查詢接口的具有高的查詢效率和低的成本的數(shù)據(jù)庫(kù)分表建立及查詢方法。
【發(fā)明內(nèi)容】
[0006]為了解決上述現(xiàn)有技術(shù)方案所存在的問(wèn)題,本發(fā)明提出了基于統(tǒng)一查詢接口的具有高的查詢效率和低的成本的數(shù)據(jù)庫(kù)分表建立及查詢方法。
[0007]本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
一種數(shù)據(jù)庫(kù)分表建立及查詢方法,所述數(shù)據(jù)庫(kù)分表建立及查詢方法包括下列步驟:(Al)基于設(shè)定的分表鍵值將數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄總表切分成一組分表,其中,所述分表鍵值是指所述數(shù)據(jù)庫(kù)的數(shù)據(jù)記錄中的特定列的值,基于該特定列的值的不同,每個(gè)數(shù)據(jù)記錄被分入到不同的分表中;
(A2)基于檢索參數(shù)-分表鍵值映射表將來(lái)自外部應(yīng)用的原始檢索語(yǔ)句轉(zhuǎn)換成至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句,其中,所述檢索參數(shù)-分表鍵值映射表定義所述原始檢索語(yǔ)句中的檢索參數(shù)與所述分表鍵值之間的映射關(guān)系;
(A3)基于所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句執(zhí)行檢索操作,并將檢索結(jié)果傳送回所述外部應(yīng)用。
[0008]在上面所公開的方案中,優(yōu)選地,所述步驟(A2)進(jìn)一步包括:當(dāng)來(lái)自所述外部應(yīng)用的原始檢索語(yǔ)句中的檢索參數(shù)包括所述分表鍵值時(shí),基于所述分表鍵值將所述檢索參數(shù)中的邏輯表名轉(zhuǎn)換為物理表名,并根據(jù)所述物理表名將所述原始檢索語(yǔ)句轉(zhuǎn)換成針對(duì)所述物理表名所代表的物理表的至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句。
[0009]在上面所公開的方案中,優(yōu)選地,所述步驟(A2)進(jìn)一步包括:當(dāng)來(lái)自所述外部應(yīng)用的原始檢索語(yǔ)句中的檢索參數(shù)不包括所述分表鍵值時(shí),基于所述檢索參數(shù)-分表鍵值映射表將所述檢索參數(shù)中的特定字段的值映射成一個(gè)或多個(gè)不同的分表鍵值,隨之基于所述分表鍵值將所述檢索參數(shù)中的邏輯表名轉(zhuǎn)換為物理表名,并根據(jù)所述物理表名將所述原始檢索語(yǔ)句轉(zhuǎn)換成針對(duì)所述物理表名所代表的物理表的至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句。
[0010]在上面所公開的方案中,優(yōu)選地,在所述檢索參數(shù)中的特定字段的值被映射成多個(gè)不同的分表鍵值的情況下,所述多個(gè)不同的分表鍵值根據(jù)預(yù)定規(guī)則被賦予不同的優(yōu)先級(jí)。
[0011]在上面所公開的方案中,優(yōu)選地,當(dāng)所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句是多個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句時(shí),所述多個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句中的每個(gè)根據(jù)預(yù)定規(guī)則被賦予不同的優(yōu)先級(jí)。
[0012]在上面所公開的方案中,優(yōu)選地,所述檢索語(yǔ)句是基于結(jié)構(gòu)化查詢語(yǔ)言的檢索語(yǔ)句。
[0013]在上面所公開的方案中,優(yōu)選地,所述步驟(A3)進(jìn)一步包括以如下方式基于所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句執(zhí)行檢索操作:(1)在對(duì)查詢時(shí)間要求較低的場(chǎng)景下,將所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句拼接成一條檢索語(yǔ)句,并隨之將其提交到數(shù)據(jù)庫(kù)一次執(zhí)行;(2)在對(duì)查詢時(shí)間要求較高的場(chǎng)景下,根據(jù)所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句的優(yōu)先級(jí)首先執(zhí)行優(yōu)先級(jí)最高的檢索語(yǔ)句,并且如果檢索結(jié)果不為空,則不執(zhí)行后續(xù)的檢索語(yǔ)句,否則,將剩余的實(shí)際可執(zhí)行的檢索語(yǔ)句拼接成一條檢索語(yǔ)句,并隨之將其提交到數(shù)據(jù)庫(kù)一次執(zhí)行。
[0014]本發(fā)明所公開的數(shù)據(jù)庫(kù)分表建立及查詢方法具有以下優(yōu)點(diǎn):(1)由于使用了檢索參數(shù)-分表鍵值映射表,故可以向不同的外部應(yīng)用提供針對(duì)不同分表的統(tǒng)一查詢接口,從而易于維護(hù)并降低了成本;(2)由于能夠針對(duì)不同的場(chǎng)景實(shí)施不同的檢索操作,故能夠顯著地提高檢索效率。
【附圖說(shuō)明】
[0015]結(jié)合附圖,本發(fā)明的技術(shù)特征以及優(yōu)點(diǎn)將會(huì)被本領(lǐng)域技術(shù)人員更好地理解,其中:
圖1是根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)庫(kù)分表建立及查詢方法的流程圖。
【具體實(shí)施方式】
[0016]圖1是根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)庫(kù)分表建立及查詢方法的流程圖。如圖1所示,本發(fā)明所公開的數(shù)據(jù)庫(kù)分表建立及查詢方法包括下列步驟:(Al)基于設(shè)定的分表鍵值將數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄總表切分成一組分表,其中,所述分表鍵值是指所述數(shù)據(jù)庫(kù)的數(shù)據(jù)記錄中的特定列的值,基于該特定列的值的不同,每個(gè)數(shù)據(jù)記錄被分入到不同的分表中(例如,針對(duì)數(shù)據(jù)記錄中的某一列的值C,按照某一個(gè)特定的規(guī)則進(jìn)行匹配,如果某條記錄C字段的值滿足條件A,則保存到A表;如果某條記錄的C字段的值滿足條件B,則保存到B表,則“字段C”的值被稱為分表鍵值);(A2)基于檢索參數(shù)-分表鍵值映射表將來(lái)自外部應(yīng)用的原始檢索語(yǔ)句轉(zhuǎn)換成至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句,其中,所述檢索參數(shù)-分表鍵值映射表定義所述原始檢索語(yǔ)句中的檢索參數(shù)與所述分表鍵值之間的映射關(guān)系;(A3)基于所述至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句執(zhí)行檢索操作,并將檢索結(jié)果傳送回所述外部應(yīng)用。
[0017]優(yōu)選地,在本發(fā)明所公開的數(shù)據(jù)庫(kù)分表建立及查詢方法中,所述步驟(A2)進(jìn)一步包括:當(dāng)來(lái)自所述外部應(yīng)用的原始檢索語(yǔ)句中的檢索參數(shù)包括所述分表鍵值時(shí),基于所述分表鍵值將所述檢索參數(shù)中的邏輯表名轉(zhuǎn)換為物理表名,并根據(jù)所述物理表名將所述原始檢索語(yǔ)句轉(zhuǎn)換成針對(duì)所述物理表名所代表的物理表的至少一個(gè)實(shí)際可執(zhí)行的檢索語(yǔ)句。
[0018]優(yōu)選地,在本發(fā)明所公開的數(shù)據(jù)庫(kù)分表建立及查詢方法中,所述步驟(A2)進(jìn)一步包括:當(dāng)來(lái)自所述外部應(yīng)用的原始檢索語(yǔ)句中的檢索參數(shù)不包括所述分表鍵值時(shí),基于所述檢索參數(shù)-分表鍵值映射表將所述檢索參數(shù)中的特定字段的值映射成一個(gè)或多個(gè)不同的分表鍵值(例如,在金融領(lǐng)域中,批量子系統(tǒng)中很多原始查詢語(yǔ)句都是以清算日期為檢索參數(shù)進(jìn)行編寫的,因此,以清算日期為例,清算日期與分表鍵值(例如外部交易日期)的映射關(guān)系可以以如下方式實(shí)現(xiàn):一個(gè)清算日期T,可以匹配到4個(gè)外部交易日期(T-2,T-1,T,T+1),其實(shí)際的業(yè)務(wù)含義為:連續(xù)4天的日表中