一種數(shù)據(jù)庫(kù)快速檢索的方法
【專利摘要】本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)庫(kù)快速檢索的方法。本發(fā)明通過部署一套業(yè)務(wù)數(shù)據(jù)臨時(shí)表對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行緩存與分層檢查,并結(jié)合memchace緩存,把查詢結(jié)果緩存至memechace中;當(dāng)再次查詢時(shí),只需要通過key值在memchace中取即可。因?yàn)閙emchace是內(nèi)存對(duì)象疑緩存系統(tǒng),查詢速度更快,因?yàn)楸葘?duì)數(shù)據(jù)庫(kù)操作效率更高;同時(shí)結(jié)合定時(shí)器,對(duì)memchace進(jìn)行清潔,這樣可以使查詢得至最全的數(shù)據(jù)結(jié)果體;本發(fā)明的方法可以廣泛應(yīng)用于軟件產(chǎn)品的數(shù)據(jù)庫(kù)查詢業(yè)務(wù)。
【專利說明】一種數(shù)據(jù)庫(kù)快速檢索的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)庫(kù)快速檢索的方法。
【背景技術(shù)】
[0002]目前的業(yè)務(wù)系統(tǒng)越來越負(fù)責(zé),但在軟件設(shè)計(jì)的過程中,大家都是使用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)與開發(fā)平臺(tái),如一個(gè)學(xué)籍管理系統(tǒng)中的學(xué)生信息可能包括教師信息、教室信息、成績(jī)信息、考勤信息、班級(jí)信息、聯(lián)系人信息。同時(shí)這些信息都通過獨(dú)立的表存放,學(xué)生信息只會(huì)保存上述信息的關(guān)聯(lián)信息,但需要獲取上述信息時(shí)可通過關(guān)聯(lián)查詢獲取。該設(shè)計(jì)方法是符合軟件設(shè)計(jì)的,而且可以讓軟件更靈活,但在數(shù)據(jù)查詢的過程中就會(huì)出現(xiàn)問題;因?yàn)樯鲜鲂畔⒍际谴娣旁诓煌谋碇?,因此需要通過表關(guān)聯(lián)的方法關(guān)聯(lián)所有信息。而關(guān)聯(lián)會(huì)造成結(jié)果數(shù)據(jù)量快速增加,如學(xué)生信息有50條記錄,教室信息有12條信息,當(dāng)關(guān)聯(lián)該兩張表時(shí)的笛卡爾積就會(huì)出現(xiàn)600條記錄,關(guān)聯(lián)的表越多,笛卡爾積增加的越快。因此在一些高頻的查詢業(yè)務(wù)中,該方法可能無法滿足系統(tǒng)的并發(fā)要求,或者響應(yīng)效率很低。
【發(fā)明內(nèi)容】
[0003]本發(fā)明解決的技術(shù)問題在于提供一種數(shù)據(jù)庫(kù)快速檢索的方法。
[0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0005]通過定時(shí)器,定時(shí)的將業(yè)務(wù)數(shù)據(jù)存放在一張臨時(shí)表中,同時(shí)根據(jù)業(yè)務(wù)需要建立相應(yīng)的索引;在數(shù)據(jù)查詢時(shí),先通過memchace緩存中取數(shù)據(jù),如果數(shù)據(jù)為空,再查詢temp數(shù)據(jù)表,并返回給用戶;同時(shí)將結(jié)果集緩存至memchace中;在用戶再通過該關(guān)鍵字查詢時(shí),可以直接通過關(guān)鍵字在memchace中獲取相應(yīng)的結(jié)果集。
[0006]2、根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)快速檢索的方法,其特征在于:
[0007]主要包括如下步驟:
[0008]第I步、根據(jù)業(yè)務(wù)需要,創(chuàng)建某一業(yè)務(wù)的臨時(shí)表temp ;
[0009]第2步、并根據(jù)業(yè)務(wù)需要,為表建立相應(yīng)的索引;
[0010]第3步、通過定期器,對(duì)某一業(yè)務(wù)的查詢數(shù)據(jù)關(guān)聯(lián)表,插入該臨時(shí)表temp中;在播入臨時(shí)表時(shí),首先刪除舊的數(shù)據(jù);
[0011]第4步、在該業(yè)務(wù)系統(tǒng)查詢中,首先通過關(guān)鍵字,在memchace查詢是否存在結(jié)果值,如果存在,則直接返回結(jié)果集;如果不存在,則執(zhí)行第5步;
[0012]第5步、查詢temp臨時(shí)表,并將關(guān)鍵字作為key,將結(jié)合集成為value,放入至menchace緩存中,同時(shí)將結(jié)果集返回客戶端。
[0013]本發(fā)明的有益效果是:本發(fā)明首先了解系統(tǒng)中高頻發(fā)生的查詢業(yè)務(wù),并明確返回結(jié)果集的數(shù)據(jù)來源表。然后建立一張臨時(shí)表,該臨時(shí)表中包含所有返回的信息列。并在一些關(guān)鍵字上建立相索引,在該業(yè)務(wù)的查詢功能中,使用該表代替之前的關(guān)聯(lián)表即可,同時(shí)組合索引,可以更快的查詢出用戶需要的信息。因此,本發(fā)明方法可以大大提高業(yè)務(wù)系統(tǒng)復(fù)雜的查詢功能,提高系統(tǒng)的并發(fā)響應(yīng)速度。而且該方法只需要在軟件層做相應(yīng)的優(yōu)化,不會(huì)增加平臺(tái)的費(fèi)用。
【專利附圖】
【附圖說明】
[0014]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
[0015]圖1為本發(fā)明方法流程圖;
[0016]圖2為本發(fā)明學(xué)籍管理系統(tǒng)的學(xué)生信息數(shù)據(jù)庫(kù)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0017]如圖所示,本發(fā)明主要包括如下步驟:
[0018]第1步、根據(jù)業(yè)務(wù)需要,創(chuàng)建某一業(yè)務(wù)的臨時(shí)表temp ;
[0019]第2步、并根據(jù)業(yè)務(wù)需要,為表建立相應(yīng)的索引;
[0020]第3步、通過定期器,對(duì)某一業(yè)務(wù)的查詢數(shù)據(jù)關(guān)聯(lián)表,插入該臨時(shí)表temp中;在播入臨時(shí)表時(shí),首先刪除舊的數(shù)據(jù);
[0021]第4步、在該業(yè)務(wù)系統(tǒng)查詢中,首先通過關(guān)鍵字,在memchace查詢是否存在結(jié)果值,如果存在,則直接返回結(jié)果集;如果不存在,則執(zhí)行第5步;
[0022]第5步、查詢temp臨時(shí)表,并將關(guān)鍵字作為key,將結(jié)合集成為value,放入至menchace緩存中,同時(shí)將結(jié)果集返回客戶端。
[0023]如圖2所示,下面具體以學(xué)籍管理平臺(tái)為例,講述該方法的優(yōu)點(diǎn)。
[0024]在學(xué)籍管理系統(tǒng)中,主要包括學(xué)生信息(student)、班級(jí)信息(class)、教室信息(class_room)、年級(jí)信息(grant)、教師信息(teacher)
[0025]其中學(xué)生信息包括與班級(jí)信息表的關(guān)聯(lián)信息Class_id ;
[0026]學(xué)生信息含與教室信息的關(guān)聯(lián)信息class_room_id ;
[0027]學(xué)生信息含與年級(jí)信息的關(guān)聯(lián)信息grant_id ;
[0028]學(xué)生信息含與教師信息的關(guān)聯(lián)信息teacher_id。
[0029]學(xué)籍管理系統(tǒng)存在一個(gè)高頻發(fā)生的查詢業(yè)務(wù),主要查詢學(xué)生的詳細(xì)信息,包括顯示學(xué)生的姓名與學(xué)號(hào)、班主任的姓名、班級(jí)、教室信息時(shí),只可以通過以下的關(guān)聯(lián)查詢:
[0030]
select
11.name as student—name,
t2.name as class—name,
[0031]
【權(quán)利要求】
1.一種數(shù)據(jù)庫(kù)快速檢索的方法,其特征在于:通過定時(shí)器,定時(shí)的將業(yè)務(wù)數(shù)據(jù)存放在一張臨時(shí)表中,同時(shí)根據(jù)業(yè)務(wù)需要建立相應(yīng)的索引;在數(shù)據(jù)查詢時(shí),先通過memchace緩存中取數(shù)據(jù),如果數(shù)據(jù)為空,再查詢temp數(shù)據(jù)表,并返回給用戶;同時(shí)將結(jié)果集緩存至memchace中;在用戶再通過該關(guān)鍵字查詢時(shí),可以直接通過關(guān)鍵字在memchace中獲取相應(yīng)的結(jié)果集。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)快速檢索的方法,其特征在于: 主要包括如下步驟: 第I步、根據(jù)業(yè)務(wù)需要,創(chuàng)建某一業(yè)務(wù)的臨時(shí)表temp ; 第2步、并根據(jù)業(yè)務(wù)需要,為表建立相應(yīng)的索引; 第3步、通過定期器,對(duì)某一業(yè)務(wù)的查詢數(shù)據(jù)關(guān)聯(lián)表,插入該臨時(shí)表temp中;在播入臨時(shí)表時(shí),首先刪除舊的數(shù)據(jù); 第4步、在該業(yè)務(wù)系統(tǒng)查詢中,首先通過關(guān)鍵字,在memchace查詢是否存在結(jié)果值,如果存在,則直接返回結(jié)果集;如果不存在,則執(zhí)行第5步; 第5步、查詢temp臨時(shí)表,并將關(guān)鍵字作為key,將結(jié)合集成為value,放入至menchace緩存中,同時(shí)將結(jié)果集返回客戶端。
【文檔編號(hào)】G06F17/30GK103729447SQ201310746424
【公開日】2014年4月16日 申請(qǐng)日期:2013年12月29日 優(yōu)先權(quán)日:2013年12月29日
【發(fā)明者】關(guān)班記, 孫傲冰, 龐毅, 季統(tǒng)凱 申請(qǐng)人:國(guó)云科技股份有限公司