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