基于共享內(nèi)存的信息查詢設(shè)備及方法
【專利摘要】本發(fā)明提出了基于共享內(nèi)存的信息查詢設(shè)備及方法。其中,所述設(shè)備包括:初始化裝置,所述初始化裝置在所述信息查詢設(shè)備啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中;查詢裝置,所述查詢裝置基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備及方法具有高的數(shù)據(jù)記錄查詢效率。
【專利說明】基于共享內(nèi)存的信息查詢設(shè)備及方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息查詢設(shè)備及方法,更具體地,涉及基于共享內(nèi)存的信息查詢設(shè)備及方法。
【背景技術(shù)】
[0002]目前,隨著信息數(shù)據(jù)處理需求的日益增長以及不同領(lǐng)域的業(yè)務(wù)種類的日益豐富,在海量數(shù)據(jù)中進(jìn)行信息的查詢(例如金融卡的BIN (Bank Identification Number,即發(fā)卡行標(biāo)識碼)查詢)變得越來越重要。
[0003]現(xiàn)有的從海量數(shù)據(jù)中查詢特定信息的設(shè)備及方法通常采用查詢數(shù)據(jù)庫的方式,SP將數(shù)據(jù)(例如配置參數(shù))存儲在數(shù)據(jù)庫中,當(dāng)需要查詢特定的數(shù)據(jù)記錄時(shí),使用關(guān)鍵字作為主鍵查詢所述數(shù)據(jù)庫(例如調(diào)用SQL語句進(jìn)行針對所述數(shù)據(jù)庫的搜索操作),
然而,現(xiàn)有的從海量數(shù)據(jù)中查詢特定信息的設(shè)備及方法存在如下問題:由于數(shù)據(jù)庫通常是獨(dú)立部署的,故在訪問數(shù)據(jù)庫時(shí)需要通過網(wǎng)絡(luò)進(jìn)行通信,并且每個(gè)數(shù)據(jù)庫搜索操作均是文件操作,由此,查詢特定的數(shù)據(jù)記錄耗時(shí)較長,例如,假設(shè)總的數(shù)據(jù)記錄的數(shù)量為n,則查詢操作的時(shí)間復(fù)雜度通常為O (η),或者有時(shí)可能會(huì)達(dá)到O(nlogn),甚至0(η2)。
[0004]因此,存在如下需求:提供具有高的數(shù)據(jù)記錄查詢效率的基于共享內(nèi)存的信息查詢設(shè)備及方法。
【發(fā)明內(nèi)容】
[0005]為了解決上述 現(xiàn)有技術(shù)方案所存在的問題,本發(fā)明提出了具有高的數(shù)據(jù)記錄查詢效率的基于共享內(nèi)存的信息查詢設(shè)備及方法。
[0006]本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種基于共享內(nèi)存的信息查詢設(shè)備,所述基于共享內(nèi)存的信息查詢設(shè)備包括:
初始化裝置,所述初始化裝置在所述信息查詢設(shè)備啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中;
查詢裝置,所述查詢裝置基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。
[0007]在上面所公開的方案中,優(yōu)選地,所述查詢條件包括待查詢的數(shù)據(jù)記錄的關(guān)鍵字段。
[0008]在上面所公開的方案中,優(yōu)選地,所述初始化操作進(jìn)一步包括:從所述數(shù)據(jù)庫依次獲取指定的各個(gè)參數(shù)表的記錄數(shù),并且基于所獲取的各個(gè)參數(shù)表的記錄數(shù)計(jì)算共享內(nèi)存的大小,并基于計(jì)算出的共享內(nèi)存的大小創(chuàng)建所述共享內(nèi)存。
[0009]在上面所公開的方案中,優(yōu)選地,所述初始化操作進(jìn)一步包括:在指定的數(shù)據(jù)記錄被裝載到所述共享內(nèi)存中后,針對每個(gè)數(shù)據(jù)記錄執(zhí)行如下操作:計(jì)算該數(shù)據(jù)記錄的關(guān)鍵字段的哈希值,并將計(jì)算出的哈希值和指向該數(shù)據(jù)記錄的指針合并為與該數(shù)據(jù)記錄相關(guān)聯(lián)的索引信息,以及將所述索引信息存儲在所述共享內(nèi)存中。
[0010]在上面所公開的方案中,優(yōu)選地,所述查詢操作包括:根據(jù)所述查詢條件計(jì)算對應(yīng)的哈希值;連接到所述共享內(nèi)存,并將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向所述外部應(yīng)用返回指示“查詢成功”的響應(yīng)并斷開與共享內(nèi)存的連接,以及如果匹配失敗,則向所述外部應(yīng)用返回指示“查詢失敗”的響應(yīng)并斷開與共享內(nèi)存的連接。
[0011]在上面所公開的方案中,優(yōu)選地,所述指示“查詢成功”的響應(yīng)包含查詢出的符合所述查詢條件的數(shù)據(jù)記錄的部分或全部內(nèi)容。
[0012]在上面所公開的方案中,優(yōu)選地,所述查詢條件是第一數(shù)字串,所述數(shù)據(jù)記錄的關(guān)鍵字段是第二數(shù)據(jù)串,并且所述第二數(shù)據(jù)串的長度小于所述第一數(shù)字串,其中,所述查詢操作包括:(I)設(shè)置L=最大第二數(shù)據(jù)串的長度(示例性地,該最大第二數(shù)據(jù)串的長度可以預(yù)先通過配置參數(shù)的方式而被確定);(2)如果L大于2,則進(jìn)入步驟(3),否則,向外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄),并終止查詢操作;(3)提取所述第一數(shù)字串的前L位數(shù)字,并根據(jù)所述第一數(shù)字串的前L位數(shù)字計(jì)算對應(yīng)的哈希值;
(4)將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;(5)如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向外部應(yīng)用返回指示“查詢成功”的響應(yīng)以及終止查詢操作,而如果匹配失敗,則使得L=L-1,并返回步驟(2 )。
[0013]本發(fā)明的目的還通過以下技術(shù)方案實(shí)現(xiàn):
一種基于共享內(nèi)存的信息查詢方法,所述基于共享內(nèi)存的信息查詢方法包括下列步
驟:
(Al)信息查詢設(shè)備在啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中;
(A2)所述信息查詢設(shè)備基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。
[0014]本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備及方法具有如下優(yōu)點(diǎn):具有極高的查詢效率,例如,假設(shè)具有400萬條數(shù)據(jù)記錄,如果根據(jù)主鍵信息從數(shù)據(jù)庫中搜索一條記錄,則時(shí)間為I秒左右,而如果使用發(fā)明所公開的基于共享內(nèi)存的信息查詢方法,則從共享內(nèi)存中根據(jù)主鍵信息搜索一條記錄的時(shí)間僅為12微秒左右。
【專利附圖】
【附圖說明】
[0015]結(jié)合附圖,本發(fā)明的技術(shù)特征以及優(yōu)點(diǎn)將會(huì)被本領(lǐng)域技術(shù)人員更好地理解,其中:
圖1是根據(jù)本發(fā)明的實(shí)施例的基于共享內(nèi)存的信息查詢設(shè)備的示意性結(jié)構(gòu)圖;
圖2是根據(jù)本發(fā)明的實(shí)施例的基于共享內(nèi)存的信息查詢方法的流程圖。
【具體實(shí)施方式】[0016]圖1是根據(jù)本發(fā)明的實(shí)施例的基于共享內(nèi)存的信息查詢設(shè)備的示意性結(jié)構(gòu)圖。如圖1所示,本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備包括初始化裝置I和查詢裝置2。其中,所述初始化裝置I在所述信息查詢設(shè)備啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中(示例性地,可以通過設(shè)置配置參數(shù)的方式指定要被裝載到共享內(nèi)存中的所述數(shù)據(jù)庫中的數(shù)據(jù)記錄)。所述查詢裝置2基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。
[0017]示例性地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述查詢條件包括待查詢的數(shù)據(jù)記錄的關(guān)鍵字段。
[0018]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述初始化操作進(jìn)一步包括:從所述數(shù)據(jù)庫依次獲取指定的各個(gè)參數(shù)表的記錄數(shù),并且基于所獲取的各個(gè)參數(shù)表的記錄數(shù)計(jì)算共享內(nèi)存的大小(示例性地,如果指定需要裝載三個(gè)參數(shù)表T1、T2和Τ3,則共享內(nèi)存的總空間為M = Tl的記錄數(shù)*T1結(jié)構(gòu)體大小+ T2的記錄數(shù)*T2結(jié)構(gòu)體大小+Τ3的記錄數(shù)*Τ3結(jié)構(gòu)體大小),并基于計(jì)算出的共享內(nèi)存的大小創(chuàng)建所述共享內(nèi)存(所創(chuàng)建的共孚內(nèi)存包括一定的空閑預(yù)留空間)。
[0019]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述初始化操作進(jìn)一步包括:在指定的數(shù)據(jù)記錄被裝載到所述共享內(nèi)存中后,針對每個(gè)數(shù)據(jù)記錄執(zhí)行如下操作:計(jì)算該數(shù)據(jù)記錄的關(guān)鍵字段的哈希值,并將計(jì)算出的哈希值和指向該數(shù)據(jù)記錄的指針合并為與該數(shù)據(jù)記錄相關(guān)聯(lián)的索引信息,以及將所述索引信息存儲在所述共享內(nèi)存中(示例性地,使用經(jīng)過優(yōu)化的哈希函數(shù),以確保每條數(shù)據(jù)記錄的哈希值都不相同,此外,如果兩條數(shù)據(jù)記錄的哈希值相同,則可以采用鏈表法來解決沖突)。
[0020]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述查詢操作包括:根據(jù)所述查詢條件計(jì)算對應(yīng)的哈希值;連接到所述共享內(nèi)存,并將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向所述外部應(yīng)用返回指示“查詢成功”的響應(yīng)并斷開與共享內(nèi)存的連接,以及如果匹配失敗,則向所述外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄)并斷開與共享內(nèi)存的連接。
[0021]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述指示“查詢成功”的響應(yīng)包含查詢出的符合所述查詢條件的數(shù)據(jù)記錄的部分或全部內(nèi)容。
[0022]示例性地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備中,所述查詢條件是第一數(shù)字串(例如金融卡的卡號),所述數(shù)據(jù)記錄的關(guān)鍵字段是第二數(shù)據(jù)串(例如金融卡的BIN,其是金融卡的完整卡號的一部分,典型地是完整卡號的前若干位),并且所述第二數(shù)據(jù)串的長度小于所述第一數(shù)字串,其中,所述查詢操作包括:(I)設(shè)置L=最大第二數(shù)據(jù)串的長度(示例性地,該最大第二數(shù)據(jù)串的長度可以預(yù)先通過配置參數(shù)的方式而被確定);(2)如果L大于2,則進(jìn)入步驟(3),否則,向外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄),并終止查詢操作;(3)提取所述第一數(shù)字串的前L位數(shù)字,并根據(jù)所述第一數(shù)字串的前L位數(shù)字計(jì)算對應(yīng)的哈希值;(4)將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;(5)如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向外部應(yīng)用返回指示“查詢成功”的響應(yīng)以及終止查詢操作,而如果匹配失敗,則使得L=L-1,并返回步驟(2)。
[0023]由上可見,本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備具有如下優(yōu)點(diǎn):具有極高的查詢效率,例如,假設(shè)具有400萬條數(shù)據(jù)記錄,如果根據(jù)主鍵信息從數(shù)據(jù)庫中搜索一條記錄,則時(shí)間為I秒左右,而如果使用發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備,則從共享內(nèi)存中根據(jù)主鍵信息搜索一條記錄的時(shí)間僅為12微秒左右,換句話說,在使用本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備的情況下,查詢操作的時(shí)間復(fù)雜度為0(1),并且查詢時(shí)間不會(huì)隨著數(shù)據(jù)記錄數(shù)量的增加而增長(例如,在金融卡領(lǐng)域,針對長度為8到13位的卡BIN查詢而言,在使用本發(fā)明所公開的基于共享內(nèi)存的信息查詢設(shè)備的情況下,對于大多數(shù)卡號來說,最少僅需要I次匹配操作,并且至多只需要6次匹配操作)。
[0024]圖2是根據(jù)本發(fā)明的實(shí)施例的基于共享內(nèi)存的信息查詢方法的流程圖。如圖2所示,本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法包括下列步驟=(Al)信息查詢設(shè)備在啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中(示例性地,可以通過設(shè)置配置參數(shù)的方式指定要被裝載到共享內(nèi)存中的所述數(shù)據(jù)庫中的數(shù)據(jù)記錄);(A2)所述信息查詢設(shè)備基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。
[0025]示例性地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述查詢條件包括待查詢的數(shù)據(jù)記錄的關(guān)鍵字段。
[0026]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述初始化操作進(jìn)一步包括:從所述數(shù)據(jù)庫依次獲取指定的各個(gè)參數(shù)表的記錄數(shù),并且基于所獲取的各個(gè)參數(shù)表的記錄數(shù)計(jì)算共享內(nèi)存的大小(示例性地,如果指定需要裝載三個(gè)參數(shù)表T1、T2和Τ3,則共享內(nèi)存的總空間為M = Tl的記錄數(shù)*T1結(jié)構(gòu)體大小+ T2的記錄數(shù)*T2結(jié)構(gòu)體大小+Τ3的記錄數(shù)*Τ3結(jié)構(gòu)體大小),并基于計(jì)算出的共享內(nèi)存的大小創(chuàng)建所述共享內(nèi)存(所創(chuàng)建的共孚內(nèi)存包括一定的空閑預(yù)留空間)。
[0027]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述初始化操作進(jìn)一步包括:在指定的數(shù)據(jù)記錄被裝載到所述共享內(nèi)存中后,針對每個(gè)數(shù)據(jù)記錄執(zhí)行如下操作:計(jì)算該數(shù)據(jù)記錄的關(guān)鍵字段的哈希值,并將計(jì)算出的哈希值和指向該數(shù)據(jù)記錄的指針合并為與該數(shù)據(jù)記錄相關(guān)聯(lián)的索引信息,以及將所述索引信息存儲在所述共享內(nèi)存中(示例性地,使用經(jīng)過優(yōu)化的哈希函數(shù),以確保每條數(shù)據(jù)記錄的哈希值都不相同,此外,如果兩條數(shù)據(jù)記錄的哈希值相同,則可以采用鏈表法來解決沖突)。
[0028]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述查詢操作包括:根據(jù)所述查詢條件計(jì)算對應(yīng)的哈希值;連接到所述共享內(nèi)存,并將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向所述外部應(yīng)用返回指示“查詢成功”的響應(yīng)并斷開與共享內(nèi)存的連接,以及如果匹配失敗,則向所述外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄)并斷開與共享內(nèi)存的連接。
[0029]優(yōu)選地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述指示“查詢成功”的響應(yīng)包含查詢出的符合所述查詢條件的數(shù)據(jù)記錄的部分或全部內(nèi)容。
[0030]示例性地,在本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法中,所述查詢條件是第一數(shù)字串(例如金融卡的卡號),所述數(shù)據(jù)記錄的關(guān)鍵字段是第二數(shù)據(jù)串(例如金融卡的BIN,其是金融卡的完整卡號的一部分,典型地是完整卡號的前若干位),并且所述第二數(shù)據(jù)串的長度小于所述第一數(shù)字串,其中,所述查詢操作包括:(I)設(shè)置L=最大第二數(shù)據(jù)串的長度(示例性地,該最大第二數(shù)據(jù)串的長度可以預(yù)先通過配置參數(shù)的方式而被確定);(2)如果L大于2,則進(jìn)入步驟(3),否則,向外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄),并終止查詢操作;(3)提取所述第一數(shù)字串的前L位數(shù)字,并根據(jù)所述第一數(shù)字串的前L位數(shù)字計(jì)算對應(yīng)的哈希值;(4)將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;(5)如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向外部應(yīng)用返回指示“查詢成功”的響應(yīng)以及終止查詢操作,而如果匹配失敗,則使得L=L-1,并返回步驟(2)。
[0031]由上可見,本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法具有如下優(yōu)點(diǎn):具有極高的查詢效率,例如,假設(shè)具有400萬條數(shù)據(jù)記錄,如果根據(jù)主鍵信息從數(shù)據(jù)庫中搜索一條記錄,則時(shí)間為I秒左右,而如果使用發(fā)明所公開的基于共享內(nèi)存的信息查詢方法,則從共享內(nèi)存中根據(jù)主鍵信息搜索一條記錄的時(shí)間僅為12微秒左右,換句話說,在使用本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法的情況下,查詢操作的時(shí)間復(fù)雜度為0(1),并且查詢時(shí)間不會(huì)隨著數(shù)據(jù)記錄數(shù)量的增加而增長(例如,在金融卡領(lǐng)域,針對長度為8到13位的卡BIN查詢而言,在使用本發(fā)明所公開的基于共享內(nèi)存的信息查詢方法的情況下,對于大多數(shù)卡號來說,最少僅需要I次匹配操作,并且至多只需要6次匹配操作)。
[0032]盡管本發(fā)明是通過上述的優(yōu)選實(shí)施方式進(jìn)行描述的,但是其實(shí)現(xiàn)形式并不局限于上述的實(shí)施方式。應(yīng)該認(rèn)識到:在不脫離本發(fā)明主旨和范圍的情況下,本領(lǐng)域技術(shù)人員可以對本發(fā)明做出不同的變化和修改。
【權(quán)利要求】
1.一種基于共享內(nèi)存的信息查詢設(shè)備,所述基于共享內(nèi)存的信息查詢設(shè)備包括: 初始化裝置,所述初始化裝置在所述信息查詢設(shè)備啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中; 查詢裝置,所述查詢裝置基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出符合所述查詢條件的數(shù)據(jù)記錄。
2.根據(jù)權(quán)利要求1所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述查詢條件包括待查詢的數(shù)據(jù)記錄的關(guān)鍵字段。
3.根據(jù)權(quán)利要求2所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述初始化操作進(jìn)一步包括:從所述數(shù)據(jù)庫依次獲取指定的各個(gè)參數(shù)表的記錄數(shù),并且基于所獲取的各個(gè)參數(shù)表的記錄數(shù)計(jì)算共享內(nèi)存的大小,并基于計(jì)算出的共享內(nèi)存的大小創(chuàng)建所述共享內(nèi)存。
4.根據(jù)權(quán)利要求3所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述初始化操作進(jìn)一步包括:在指定的數(shù)據(jù)記錄被裝載到所述共享內(nèi)存中后,針對每個(gè)數(shù)據(jù)記錄執(zhí)行如下操作:計(jì)算該數(shù)據(jù)記錄的關(guān)鍵字段的哈希值,并將計(jì)算出的哈希值和指向該數(shù)據(jù)記錄的指針合并為與該數(shù)據(jù)記錄相關(guān)聯(lián)的索引信息,以及將所述索引信息存儲在所述共享內(nèi)存中。
5.根據(jù)權(quán)利要求4所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述查詢操作包括:根據(jù)所述查詢條件計(jì)算對應(yīng)的哈希值;連接到所述共享內(nèi)存,并將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;如果匹配成功,則根據(jù)所匹配的索引信息中 的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向所述外部應(yīng)用返回指示“查詢成功”的響應(yīng)并斷開與共享內(nèi)存的連接,以及如果匹配失敗,則向所述外部應(yīng)用返回指示“查詢失敗”的響應(yīng)并斷開與共享內(nèi)存的連接。
6.根據(jù)權(quán)利要求5所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述指示“查詢成功”的響應(yīng)包含查詢出的符合所述查詢條件的數(shù)據(jù)記錄的部分或全部內(nèi)容。
7.根據(jù)權(quán)利要求6所述的基于共享內(nèi)存的信息查詢設(shè)備,其特征在于,所述查詢條件是第一數(shù)字串,所述數(shù)據(jù)記錄的關(guān)鍵字段是第二數(shù)據(jù)串,并且所述第二數(shù)據(jù)串的長度小于所述第一數(shù)字串,其中,所述查詢操作包括:(I)設(shè)置L=最大第二數(shù)據(jù)串的長度(示例性地,該最大第二數(shù)據(jù)串的長度可以預(yù)先通過配置參數(shù)的方式而被確定);(2)如果L大于2,則進(jìn)入步驟(3),否則,向外部應(yīng)用返回指示“查詢失敗”的響應(yīng)(即未找到與查詢條件相對應(yīng)的數(shù)據(jù)記錄),并終止查詢操作;(3)提取所述第一數(shù)字串的前L位數(shù)字,并根據(jù)所述第一數(shù)字串的前L位數(shù)字計(jì)算對應(yīng)的哈希值;(4)將計(jì)算出的所述哈希值與所述共享內(nèi)存中存儲的索引信息中的哈希值進(jìn)行匹配;(5)如果匹配成功,則根據(jù)所匹配的索引信息中的指向數(shù)據(jù)記錄的指針從所述共享內(nèi)存中獲取對應(yīng)的數(shù)據(jù)記錄,并向外部應(yīng)用返回指示“查詢成功”的響應(yīng)以及終止查詢操作,而如果匹配失敗,則使得L=L-1,并返回步驟(2)。
8.一種基于共享內(nèi)存的信息查詢方法,所述基于共享內(nèi)存的信息查詢方法包括下列步驟: (Al)信息查詢設(shè)備在啟動(dòng)時(shí)基于與對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)通信而執(zhí)行初始化操作,所述初始化操作包括創(chuàng)建共享內(nèi)存并將所述數(shù)據(jù)庫中指定的數(shù)據(jù)記錄裝載到所述共享內(nèi)存中; (A2)所述信息查詢設(shè)備基于接收到的來自外部應(yīng)用的包含查詢條件的查詢指令執(zhí)行查詢操作,以從所述共享內(nèi)存中查詢出`符合所述查詢條件的數(shù)據(jù)記錄。
【文檔編號】G06F17/30GK103870511SQ201210550570
【公開日】2014年6月18日 申請日期:2012年12月18日 優(yōu)先權(quán)日:2012年12月18日
【發(fā)明者】邱鵬, 楊燕明 申請人:中國銀聯(lián)股份有限公司