專利名稱:一種減少分頁數(shù)據(jù)檢索時(shí)間的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)管理技術(shù)領(lǐng)域,尤其涉及數(shù)據(jù)檢索的方法及裝置。
背景技術(shù):
GLMS(群組列表管理服務(wù)器)是一種管理群組列表的服務(wù)器,支持管理50萬用戶數(shù)據(jù)和50萬群組數(shù)據(jù),其中每個(gè)群組最大可以允許1024個(gè)用戶成員,因此單個(gè)的群組成員表的記錄數(shù)超過1千萬條。
在對大數(shù)據(jù)量的表進(jìn)行查詢操作時(shí),會返回大量的符合條件的紀(jì)錄,由使用者從中篩選,一般為了提高性能,查詢操作會對數(shù)據(jù)進(jìn)行分頁處理,由使用者根據(jù)需要選擇需要查詢頁的大小和頁號碼。
如圖1所示是一個(gè)比較常見的查詢頁面,使用者可以輸入條件進(jìn)行查詢,可以向前,向后翻頁,可以翻到第一頁,也可以翻到最后一頁。
其查詢的基本流程如圖2所示,包括如下操作1)數(shù)據(jù)準(zhǔn)備操作包括設(shè)定查詢條件,每頁包含的紀(jì)錄條數(shù),查詢的頁碼;2)數(shù)據(jù)處理根據(jù)查詢條件查詢,限定返回的結(jié)果集數(shù)量為頁碼減1后與頁大小的乘積,將查詢結(jié)果按照索引進(jìn)行升序排列;3)獲得結(jié)果集中最大索引號;4)構(gòu)造新的查詢條件,包含大于最大索引號條件,進(jìn)行查詢,限定返回頁大小的結(jié)果數(shù)量;5)數(shù)據(jù)輸出將查詢的結(jié)果集返回給上層應(yīng)用程序。
上述方案通過查詢指定頁碼之前的數(shù)據(jù)獲得一個(gè)最大索引值,利用該索引值來返回指定頁碼的指定頁大小的數(shù)據(jù),隨著指定頁碼的數(shù)值增大,計(jì)算最大索引值上的開銷越大,特別是對于用戶常用的選擇第一頁和最后一頁操作,最后一頁的查詢速度最慢。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明的目的在于提供一種減少分頁數(shù)據(jù)檢索時(shí)間的方法及裝置,利用變化升序和降序排列的方法,減少查詢頁碼大時(shí)的時(shí)延,從而達(dá)到優(yōu)化查詢性能的目的。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,包括A、設(shè)置查詢條件,獲得符合查詢條件的總頁數(shù);B、確定要查詢的頁碼大于所述總頁數(shù)的一半,則根據(jù)查詢條件進(jìn)行查詢,限定返回的結(jié)果集數(shù)量,并將結(jié)果集降序排列,從而獲得結(jié)果集中的最小索引號;C、根據(jù)上述獲得的最小索引號及原查詢條件構(gòu)造新的查詢條件,根據(jù)新的查詢條件獲得查詢結(jié)果。
所述步驟A中設(shè)置的查詢條件包括每頁包含的記錄條數(shù)、要查詢的頁碼。
所述步驟A中限定返回結(jié)果集數(shù)量為總頁數(shù)減去要查詢的頁碼后與每頁包含記錄條數(shù)的乘積。
所述步驟A中獲得符合查詢條件的總頁數(shù)的方法具體包括根據(jù)查詢條件進(jìn)行查詢,獲得符合查詢條件的總記錄數(shù),用總記錄數(shù)除以每頁包含的記錄條數(shù),得到符合查詢條件的總頁數(shù)。
所述步驟C中構(gòu)造的新的查詢條件包括小于最小索引號條件及返回頁包含的記錄條數(shù)。
所述新查詢條件中返回頁碼包含的記錄條數(shù)與原查詢條件中每頁包含的記錄條數(shù)相同。
所述方法還包括D、將所述查詢結(jié)果升序排列后返回給上層應(yīng)用程序。
所述方法應(yīng)用于數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)查詢設(shè)備中。
一種減少分頁數(shù)據(jù)檢索時(shí)間的裝置,所述裝置至少包括查詢條件設(shè)置模塊,用于構(gòu)造查詢條件;查詢處理模塊,與查詢條件設(shè)置模塊相連,用于根據(jù)查詢條件進(jìn)行查找,并限定采用的查詢模式;排序轉(zhuǎn)換模塊,用于根據(jù)所述確定的查詢模式轉(zhuǎn)換查找結(jié)果集的排序。
所述查詢模式包括升序查詢和降序查詢。。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明利用變化升序和降序排列的方法,減少了查詢頁碼大時(shí)的時(shí)延,并且同時(shí)不增大查詢其他頁的時(shí)延,達(dá)到了優(yōu)化查詢性能的目的。
圖1為現(xiàn)有技術(shù)一種查詢頁面示意圖;圖2為現(xiàn)有技術(shù)分頁查詢操作流程圖;圖3為本發(fā)明所述系統(tǒng)模塊圖;圖4為本發(fā)明所述方法一種實(shí)施例操作流程圖;圖5為本發(fā)明有益效果示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想是提供一種減少分頁數(shù)據(jù)檢索時(shí)間的方法及裝置,利用變化升序和降序排列的方法,減少了查詢頁碼大時(shí)的時(shí)延,達(dá)到優(yōu)化查詢性能的目的。
本發(fā)明提供了一種減少分頁數(shù)據(jù)檢索時(shí)間的裝置,該裝置可應(yīng)用于數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)查詢設(shè)備中,所述裝置模塊圖如圖3所示,該裝置至少包括查詢條件設(shè)置模塊、查詢處理模塊、排序轉(zhuǎn)換模塊。所述的查詢條件設(shè)置模塊用于構(gòu)造查詢條件,包括每頁包含的記錄條數(shù)、查詢的頁碼、小于最小索引號條件等;所述的查詢處理模塊與查詢條件設(shè)置模塊相連,用于根據(jù)查詢條件設(shè)置模塊設(shè)置的查詢條件進(jìn)行查詢,并限定采用的查詢模式是升序查詢還是降序查詢;所述的排序轉(zhuǎn)換模塊與查詢處理模塊相連,用于接收查詢處理模塊限定采用的查詢模式,根據(jù)所述查詢模式轉(zhuǎn)換查找結(jié)果集的排序,如將按照索引升序排列的查找結(jié)果集降序排列。
本發(fā)明提供了一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其一種實(shí)施例操作流程如圖4所示,具體包括如下步驟步驟1查詢條件設(shè)置模塊設(shè)置查詢條件,每頁包含的記錄條數(shù)、查詢的頁碼;本實(shí)施例假定每頁包含的記錄條數(shù)為10條,要查詢的頁碼為第60頁;步驟2獲得符合查詢條件的總記錄數(shù),根據(jù)總記錄數(shù)、頁大小獲得總頁數(shù);根據(jù)上述設(shè)置的查詢條件查詢,獲得符合條件的總記錄數(shù),用總記錄數(shù)除以每頁包含的記錄條數(shù),得到總頁數(shù);若上述獲得的總記錄數(shù)為1000條,則總頁數(shù)為1000÷10=100頁;步驟3將要查詢的頁碼與上述獲得的總頁數(shù)比較,判斷要查詢的頁碼是否大于總頁數(shù)的一半;若小于總頁數(shù)的一半,則按照原升序查詢法查詢,對于生序查詢法本發(fā)明不作限定;
步驟4如果查詢的頁碼大于總頁數(shù)的一半,則查詢處理模塊根據(jù)查詢條件查詢具體要查詢的內(nèi)容,限定返回的結(jié)果集數(shù)量為總頁數(shù)減去要查詢的頁碼后與頁大小的乘積,排序轉(zhuǎn)換模塊將查詢結(jié)果按照索引進(jìn)行降序排列;由于60大于100的一半50,所以按照上述方法,首先按照查詢條件查詢具體內(nèi)容,再限定返回的結(jié)果集數(shù)量為(100-60)×10,將返回查詢到的結(jié)果中61頁后所有內(nèi)容,再將查詢結(jié)果按照降序排列;步驟5獲得結(jié)果集中的最小索引號;在上述降序排列的結(jié)果集中,獲得最小索引號,即第61頁最前面一條的索引號;步驟6查詢條件設(shè)置模塊構(gòu)造新的查詢條件,包含小于最小索引號條件,進(jìn)行查詢,限定返回頁大小的結(jié)果數(shù)量;構(gòu)造的新的查詢條件包括小于最小索引號條件及返回頁包含的記錄條數(shù),查詢條件中返回頁碼包含的記錄條數(shù)與原查詢條件中每頁包含的記錄條數(shù)相同,如上述實(shí)例中原查詢條件中每頁包含的記錄數(shù)為10,則新查詢條件中返回頁包含的記錄條數(shù)也為10;步驟7將查詢的結(jié)果集升序排列后返回給上層應(yīng)用程序;按照上述設(shè)置的新的查詢條件進(jìn)行查詢,并將查詢結(jié)果集返回給上層應(yīng)用程序。
利用本發(fā)明所述方法其查詢的性能優(yōu)化可如圖5所示,對于頁碼在中間的查詢沒有改變查詢性能,對于第一頁和最后一頁的查詢性能得到很大優(yōu)化。
綜上所述,本發(fā)明利用變化升序和降序排列的方法,減少了查詢頁碼大時(shí)的時(shí)延,達(dá)到了優(yōu)化查詢性能的目的。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,包括A、設(shè)置查詢條件,獲得符合查詢條件的總頁數(shù);B、確定要查詢的頁碼大于所述總頁數(shù)的一半,則根據(jù)查詢條件進(jìn)行查詢,限定返回的結(jié)果集數(shù)量,并將結(jié)果集降序排列,從而獲得結(jié)果集中的最小索引號;C、根據(jù)上述獲得的最小索引號及原查詢條件構(gòu)造新的查詢條件,根據(jù)新的查詢條件獲得查詢結(jié)果。
2.如權(quán)利要求1所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述步驟A中設(shè)置的查詢條件包括每頁包含的記錄條數(shù)、要查詢的頁碼。
3.如權(quán)利要求2所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述步驟A中限定返回結(jié)果集數(shù)量為總頁數(shù)減去要查詢的頁碼后與每頁包含記錄條數(shù)的乘積。
4.如權(quán)利要求2所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述步驟A中獲得符合查詢條件的總頁數(shù)的方法具體包括根據(jù)查詢條件進(jìn)行查詢,獲得符合查詢條件的總記錄數(shù),用總記錄數(shù)除以每頁包含的記錄條數(shù),得到符合查詢條件的總頁數(shù)。
5.如權(quán)利要求2所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述步驟C中構(gòu)造的新的查詢條件包括小于最小索引號條件及返回頁包含的記錄條數(shù)。
6.如權(quán)利要求5所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述新查詢條件中返回頁碼包含的記錄條數(shù)與原查詢條件中每頁包含的記錄條數(shù)相同。
7.如權(quán)利要求1所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述方法還包括D、將所述查詢結(jié)果升序排列后返回給上層應(yīng)用程序。
8.如權(quán)利要求1至7中任一項(xiàng)所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的方法,其特征在于,所述方法應(yīng)用于數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)查詢設(shè)備中。
9.一種減少分頁數(shù)據(jù)檢索時(shí)間的裝置,其特征在于,所述裝置至少包括查詢條件設(shè)置模塊,用于構(gòu)造查詢條件;查詢處理模塊,與查詢條件設(shè)置模塊相連,用于根據(jù)查詢條件進(jìn)行查找,并限定采用的查詢模式;排序轉(zhuǎn)換模塊,用于根據(jù)所述確定的查詢模式轉(zhuǎn)換查找結(jié)果集的排序。
10.如權(quán)利要求9所述的一種減少分頁數(shù)據(jù)檢索時(shí)間的裝置,其特征在于,所述查詢模式包括升序查詢和降序查詢。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)管理技術(shù)領(lǐng)域中一種減少分頁數(shù)據(jù)檢索時(shí)間的方法及裝置。包括如下操作首先,設(shè)置查詢條件,獲得符合查詢條件的總頁數(shù);確定要查詢的頁碼大于所述總頁數(shù)的一半,則根據(jù)查詢條件進(jìn)行查詢,限定返回結(jié)果集數(shù)量,并將結(jié)果集降序排列,從而獲得結(jié)果集中的最小索引號;根據(jù)上述獲得的最小索引號及原查詢條件構(gòu)造新的查詢條件,根據(jù)新的查詢條件獲得查詢結(jié)果。利用本發(fā)明所述方法及裝置減少了查詢頁碼大時(shí)的時(shí)延,并且同時(shí)不增大查詢其他頁的時(shí)延,達(dá)到了優(yōu)化查詢性能的目的。
文檔編號G06F17/30GK1866251SQ200510130919
公開日2006年11月22日 申請日期2005年12月8日 優(yōu)先權(quán)日2005年12月8日
發(fā)明者王 華, 舒適 申請人:華為技術(shù)有限公司