專利名稱::有序數(shù)據(jù)的記錄方法和裝置、有序數(shù)據(jù)的訪問方法和裝置的制作方法
技術領域:
:本申請涉及計算機數(shù)據(jù)存儲
技術領域:
,特別是涉及一種有序數(shù)據(jù)的記錄方法和裝置,一種有序數(shù)據(jù)的訪問方法和裝置。
背景技術:
:為了減少網(wǎng)絡流量,提高頁面的訪問速度,在線應用程序往往不能在一頁中顯示全部內(nèi)容,而是將全部內(nèi)容按照一定規(guī)則分成多頁進行顯示,每頁顯示一定數(shù)目的記錄。這就要求用戶通過分頁的方式向服務器發(fā)起頁面訪問請求,由服務器根據(jù)頁面訪問請求中的頁碼,每次分別從后臺數(shù)據(jù)庫中獲取相應的記錄數(shù)據(jù)并顯示出來。假設服務器后臺數(shù)據(jù)庫中有ID為1、2、3、4、5、6、7、8、9.....100共100條記錄存在磁盤中,假設分頁的大小為10,即每頁顯示10條記錄。如果當前用戶請求第2頁的內(nèi)容,則表示用戶需要的數(shù)據(jù)是ID從11到20的記錄數(shù)據(jù)。在接收到上述情景下的頁面訪問請求時,現(xiàn)有的服務器通常首先將全部的100條記錄從后臺的磁盤讀取至內(nèi)存,然后從內(nèi)存篩選出ID從11到20的記錄數(shù)據(jù)。但是,除了ID從11到20的10條記錄數(shù)據(jù)外,其它90條記錄數(shù)據(jù)都是冗余讀取的;從磁盤的角度而言,所述冗余讀取無疑增加了磁盤的10(輸入輸出,InputOutput)操作,降低了后臺的IO性能,導致消耗了過多的讀取時間,從而增加了頁面訪問請求的處理時間;從內(nèi)存的角度而言,由于內(nèi)存的總大小是有限的,所述冗余讀取會占用大量的內(nèi)存,在分頁總數(shù)過大時,甚至會出現(xiàn)內(nèi)存不足的情況,而內(nèi)存不足容易引發(fā)磁盤讀取故障等一系列問題,從而降低了頁面訪問請求的處理準確率??傊?,需要本領域技術人員迫切解決的一個技術問題就是如何能夠提高頁面訪問請求的處理效率和處理準確率。
發(fā)明內(nèi)容本申請所要解決的技術問題是,提供一種有序數(shù)據(jù)的記錄方法和裝置,能夠在磁盤文件中將有序數(shù)據(jù)按塊方式進行記錄,其中,每個塊用于記錄相應有序數(shù)據(jù)的區(qū)間和記錄數(shù)目。相應的,本申請還提供了一種有序數(shù)據(jù)的訪問方法和裝置,只需從所述特定分頁內(nèi)容所對應的記錄所覆蓋的塊及相應的區(qū)間中讀取數(shù)據(jù),能夠做到盡量避免讀取冗余數(shù)據(jù),以減少磁盤的IO操作。為了解決上述問題,本申請公開了一種有序數(shù)據(jù)的記錄方法,包括針對有序數(shù)據(jù),建立磁盤文件;在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,所述記錄過程包括在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。優(yōu)選的,針對不同的排序指標,在該磁盤文件中將相應有序數(shù)據(jù)記錄至不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù)。另一方面,本申請還公開了一種有序數(shù)據(jù)的記錄裝置,包括建立模塊,用于針對有序數(shù)據(jù),建立磁盤文件;及記錄模塊,在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,包括塊記錄子模塊,用于在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。優(yōu)選的,所述記錄模塊,具體用于針對不同的排序指標,在該磁盤文件中將相應有序數(shù)據(jù)記錄至不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù)。另一方面,本申請還公開了一種有序數(shù)據(jù)的訪問方法,包括接收用戶針對有序數(shù)據(jù)的分頁訪問請求;依據(jù)所述分頁訪問請求,計算相應記錄的訪問偏移和訪問長度;依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間;其中,所述塊位于所述有序數(shù)據(jù)的磁盤文件中,在每個塊中記錄有相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目;依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)。優(yōu)選的,所述依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的字段區(qū)間及相應的塊的步驟,包括讀取該磁盤文件中的塊;如果所述訪問偏移落在某塊的字段區(qū)間內(nèi),則以該塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間;如果所述訪問偏移與所述訪問長度的運算結果落在某塊的字段區(qū)間內(nèi),則以該塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間;其中,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的和,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的差;將所述第一塊、第一塊與第二塊之間的連續(xù)塊和第二塊組成的合并塊及相應的字段區(qū)間,作為所述分頁訪問請求對應的記錄覆蓋的塊和相應的字段區(qū)間。優(yōu)選的,所述塊具有相應的塊編號,所述塊編號的順序與塊中所記錄字段區(qū)間的順序一致或者相反;所述獲取所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間的步驟,包括從最小的塊編號開始,依次讀取該磁盤文件中的塊,并進行相應的第一覆蓋判斷,所述第一覆蓋判斷過程包括判斷所述訪問偏移是否落在當前塊的字段區(qū)間內(nèi),若是,則以該當前塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間,并結束讀?。环駝t,塊編號加1,繼續(xù)讀取該磁盤文件中的塊;所述獲取所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間的步驟,包括從最小的塊編號開始,依次讀取該磁盤文件中的塊,并進行相應的第二覆蓋判斷,所述第二覆蓋判斷過程包括判斷所述訪問偏移與所述訪問長度的運算結果是否落在當前塊的字段區(qū)間內(nèi),若是,則以該當前塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間;否則,塊編號加1,繼續(xù)讀取該磁盤文件中的塊;其中,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的和,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的差。優(yōu)選的,針對不同的排序指標,在該磁盤文件中對應有不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù);所述依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間的步驟,包括依據(jù)所述分頁訪問請求,獲得相應有序數(shù)據(jù)的訪問排序指標;從該磁盤文件中獲取與所述訪問排序指標相應的訪問塊;通過讀取所述訪問塊,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間。優(yōu)選的,依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)的步驟,包括判斷所述覆蓋的字段區(qū)間與所述分頁訪問請求是否匹配,若是,則從數(shù)據(jù)庫中讀取與所述覆蓋的字段區(qū)間相應的記錄數(shù)據(jù);否則,從數(shù)據(jù)庫中讀取與所述覆蓋的字段區(qū)間相應的記錄數(shù)據(jù)至內(nèi)存,并在內(nèi)存中對所讀取的記錄數(shù)據(jù)進行篩選,直至篩選結果與所述分頁訪問請求匹配。另一方面,本申請還公開了一種有序數(shù)據(jù)的訪問裝置,包括接口模塊,用于接收用戶針對有序數(shù)據(jù)的分頁訪問請求;計算模塊,用于依據(jù)所述分頁訪問請求,計算相應記錄的訪問偏移和訪問長度;覆蓋獲取模塊,用于依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間;其中,所述塊位于所述有序數(shù)據(jù)的磁盤文件中,在每個塊中記錄有相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目;及訪問模塊,用于依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)與現(xiàn)有技術相比,本申請具有以下優(yōu)點相對于現(xiàn)有技術中磁盤文件以ID或ID段作為數(shù)據(jù)庫索引,本申請在磁盤文件中記錄數(shù)據(jù)庫分頁內(nèi)容的索引,具體而言,在磁盤文件中將有序數(shù)據(jù)按塊(block)方式進行記錄,其中,每個block用于記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目;在實際中,所述字段區(qū)間往往為ID字段的區(qū)間,這樣,在用戶請求特定分頁內(nèi)容時,不是類似現(xiàn)有技術從數(shù)據(jù)庫中讀取全區(qū)間對應的全部內(nèi)容,而是僅僅從所述特定分頁內(nèi)容所對應的記錄所覆蓋block對應的字段區(qū)間中讀取數(shù)據(jù),也即,本申請讀取的是局部內(nèi)容,因此,能夠做到盡量避免讀取冗余數(shù)據(jù)。從磁盤的角度而言,所述冗余讀取的避免能夠減少磁盤的IO操作,提高后臺的IO性能,降低讀取時間,從而能夠減少分頁訪問請求的處理時間。從內(nèi)存的角度而言,所述冗余讀取的避免能夠避免內(nèi)存的大量分配和占用,從而能夠避免在分頁總數(shù)過大時出現(xiàn)的內(nèi)存不足的情況,以及內(nèi)存不足引發(fā)的磁盤讀取故障等一系列問題,從而能夠提高頁面訪問請求的處理準確率。在所述特定分頁內(nèi)容所對應的記錄所覆蓋的block及相應的字段區(qū)間與所述分頁訪問請求匹配時,本申請可以直接將讀取的記錄數(shù)據(jù)顯示在前臺頁面,而無需占用內(nèi)存,此時,能夠最大限度地提高內(nèi)存性能。圖1是本申請一種有序數(shù)據(jù)的記錄方法實施例的流程圖;圖2是本申請一種B+樹的存儲結構示意圖;圖3是本申請一種有序數(shù)據(jù)的記錄裝置實施例的結構圖;圖4是本申請一種有序數(shù)據(jù)的訪問方法實施例的流程圖;圖5是本申請一種有序數(shù)據(jù)的訪問裝置實施例的結構圖。具體實施例方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。為使本領域技術人員更好地理解本申請,首先簡單介紹服務器后臺數(shù)據(jù)庫中有序數(shù)據(jù)的存儲方式。假設服務器后臺數(shù)據(jù)庫中有ID為1、2、3、4、5、6、7、8、9、...、100共100條記錄,通常會使用日期對這100條記錄進行倒序排列,經(jīng)過排序后的100條記錄稱為有序數(shù)據(jù),這些有序數(shù)據(jù)通常以文件的形式存儲在磁盤中,如Google的Bigtable數(shù)據(jù)庫中采用SSTable文件來記錄有序數(shù)據(jù)。目前,服務器后臺數(shù)據(jù)庫通常使用2層的B+樹存儲有序數(shù)據(jù),B+樹具有如下特性1、所有關鍵字(上例中的ID)都出現(xiàn)在葉子結點的鏈表中(稠密索引),且鏈表中的關鍵字恰好是升序排列的;2、不可能在非葉子結點命中;3、非葉子結點相當于是葉子結點的索引(稀疏索引),葉子結點相當于是存儲(關鍵字)數(shù)據(jù)的數(shù)據(jù)層。依據(jù)B+樹的上述特性,磁盤文件記錄的內(nèi)容可以包括根數(shù)據(jù)和葉子數(shù)據(jù),其中,根數(shù)據(jù)用于存儲每個葉子節(jié)點的最大ID和最小ID,以及每個葉子節(jié)點在磁盤文件中的偏移位置。其中,葉子數(shù)據(jù)用于存儲升序排列的ID。上述磁盤文件能夠實現(xiàn)給出一個任意ID可定位到葉子節(jié)點,然后將葉子節(jié)點的記錄數(shù)據(jù)讀取到內(nèi)存,篩選出滿足用戶需求的記錄數(shù)據(jù)的方案。通常,每張數(shù)據(jù)庫的表有多個這樣的磁盤文件,每次讀取記錄的時候從最新的磁盤文件開始按上面的方法讀取,如果讀不到,則讀取次新的磁盤文件。這里,最新和次新主要依據(jù)磁盤文件的更新時間來定義和衡量。當讀取一段數(shù)據(jù),比如IDl到ID3的數(shù)據(jù)時,這段數(shù)據(jù)有可能落在磁盤文件1、磁盤文件2和磁盤文件3中,此時,還應把這3個磁盤文件各自的讀取結果做一次多路歸才能得到最終的讀取結果。綜上所述,現(xiàn)有技術中磁盤文件的結構只能根據(jù)ID或ID段來進行數(shù)據(jù)庫的查詢讀取,而無法根據(jù)頁碼來進行數(shù)據(jù)庫的查詢讀取。因為現(xiàn)有技術中磁盤文件的結構只能定位到某個ID,而無法定位到某個記錄,所以現(xiàn)有技術中必須首先根據(jù)ID或ID段將所有數(shù)據(jù)都查詢讀取出來,然后在內(nèi)存中進行分頁。對應上例,如果用戶請求第2頁的內(nèi)容,現(xiàn)有技術查詢讀取的是全部內(nèi)容[1,100];實際上,用戶所要訪問的任何一個分頁內(nèi)容所對應的記錄只在一個范圍內(nèi),例如第2頁的內(nèi)容所對應的記錄只在[11,20]范圍內(nèi)。本申請實施例的核心構思之一在于,不是類似現(xiàn)有技術中磁盤文件記錄ID或ID段作為訪問數(shù)據(jù)庫全部內(nèi)容的索引,而是在磁盤文件中記錄數(shù)據(jù)庫分頁內(nèi)容的索引,具體而言,在磁盤文件中將有序數(shù)據(jù)按塊(block)方式進行記錄,其中,每個block用于記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目。在實際中,所述字段區(qū)間往往為ID字段的區(qū)間,這樣,在用戶請求特定分頁內(nèi)容時,可以首先通過讀取相應磁盤文件中的block,獲取所述特定分頁內(nèi)容所對應的記錄所覆蓋的block及相應的字段區(qū)間,然后從所述覆蓋block對應的字段區(qū)間中讀取數(shù)據(jù)。因此,相對于從數(shù)據(jù)庫中讀取全區(qū)間對應的全部內(nèi)容的現(xiàn)有技術,本申請只需從所述特定分頁內(nèi)容所對應的記錄所覆蓋block對應的字段區(qū)間中讀取數(shù)據(jù),能夠做到盡量避免讀取冗余數(shù)據(jù),以減少磁盤的10操作。參照圖1,其示出了本申請一種有序數(shù)據(jù)的記錄方法實施例的流程圖,具體可以包括步驟101、針對有序數(shù)據(jù),建立磁盤文件;步驟102、在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,所述記錄過程可以包括步驟121、在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。作為數(shù)據(jù)庫中按照所述字段進行有序存儲的數(shù)據(jù)記錄,在實際中,所述有序數(shù)據(jù)可以應用于在線應用程序等各種需要訪問有序數(shù)據(jù)的程序。在線應用程序主要指帶網(wǎng)絡連接或需要網(wǎng)絡連接才能使用的程序,其可以是B/S(瀏覽器/服務器,Browser/Server)結構,如網(wǎng)絡郵箱、網(wǎng)絡博客、網(wǎng)絡微博、網(wǎng)絡論壇、即時通訊、電子商務網(wǎng)站等需要瀏覽器支持的程序。以下主要以網(wǎng)絡郵箱作為應用場景的示例,實際上,本申請對具體的在線應用程序不加以限制,其它應用場景請相互參照即可。參照表1,其示出了目前網(wǎng)絡郵箱中常用的數(shù)據(jù)表結構及記錄方式。表I權利要求1.一種有序數(shù)據(jù)的記錄方法,其特征在于,包括針對有序數(shù)據(jù),建立磁盤文件;在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,所述記錄過程包括在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。2.如權利要求1所述的方法,其特征在于,針對不同的排序指標,在該磁盤文件中將相應有序數(shù)據(jù)記錄至不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù)。3.一種有序數(shù)據(jù)的記錄裝置,其特征在于,包括建立模塊,用于針對有序數(shù)據(jù),建立磁盤文件;及記錄模塊,在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,包括塊記錄子模塊,用于在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。4.如權利要求3所述的裝置,其特征在于,所述記錄模塊,具體用于針對不同的排序指標,在該磁盤文件中將相應有序數(shù)據(jù)記錄至不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù)。5.一種有序數(shù)據(jù)的訪問方法,其特征在于,包括接收用戶針對有序數(shù)據(jù)的分頁訪問請求;依據(jù)所述分頁訪問請求,計算相應記錄的訪問偏移和訪問長度;依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間;其中,所述塊位于所述有序數(shù)據(jù)的磁盤文件中,在每個塊中記錄有相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目;依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)。6.如權利要求5所述的方法,其特征在于,所述依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的字段區(qū)間及相應的塊的步驟,包括讀取該磁盤文件中的塊;如果所述訪問偏移落在某塊的字段區(qū)間內(nèi),則以該塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間;如果所述訪問偏移與所述訪問長度的運算結果落在某塊的字段區(qū)間內(nèi),則以該塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間;其中,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的和,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的差;將所述第一塊、第一塊與第二塊之間的連續(xù)塊和第二塊組成的合并塊及相應的字段區(qū)間,作為所述分頁訪問請求對應的記錄覆蓋的塊和相應的字段區(qū)間。7.如權利要求6所述的方法,其特征在于,所述塊具有相應的塊編號,所述塊編號的順序與塊中所記錄字段區(qū)間的順序一致或者相反;所述獲取所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間的步驟,包括從最小的塊編號開始,依次讀取該磁盤文件中的塊,并進行相應的第一覆蓋判斷,所述第一覆蓋判斷過程包括判斷所述訪問偏移是否落在當前塊的字段區(qū)間內(nèi),若是,則以該當前塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第一塊及相應的第一字段區(qū)間,并結束讀?。环駝t,塊編號加1,繼續(xù)讀取該磁盤文件中的塊;所述獲取所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間的步驟,包括從最小的塊編號開始,依次讀取該磁盤文件中的塊,并進行相應的第二覆蓋判斷,所述第二覆蓋判斷過程包括判斷所述訪問偏移與所述訪問長度的運算結果是否落在當前塊的字段區(qū)間內(nèi),若是,則以該當前塊和相應的字段區(qū)間作為所述分頁訪問請求對應的記錄覆蓋的第二塊及相應的第二字段區(qū)間;否則,塊編號加1,繼續(xù)讀取該磁盤文件中的塊;其中,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的和,如果所述有序數(shù)據(jù)為升序排列,則所述運算結果為所述訪問偏移與所述訪問長度的差。8.如權利要求5所述的方法,其特征在于,針對不同的排序指標,在該磁盤文件中對應有不同的塊,其中,所述排序指標為所述有序數(shù)據(jù)的排序依據(jù);所述依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間的步驟,包括依據(jù)所述分頁訪問請求,獲得相應有序數(shù)據(jù)的訪問排序指標;從該磁盤文件中獲取與所述訪問排序指標相應的訪問塊;通過讀取所述訪問塊,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間。9.如權利要求5所述的方法,其特征在于,依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)的步驟,包括判斷所述覆蓋的字段區(qū)間與所述分頁訪問請求是否匹配,若是,則從數(shù)據(jù)庫中讀取與所述覆蓋的字段區(qū)間相應的記錄數(shù)據(jù);否則,從數(shù)據(jù)庫中讀取與所述覆蓋的字段區(qū)間相應的記錄數(shù)據(jù)至內(nèi)存,并在內(nèi)存中對所讀取的記錄數(shù)據(jù)進行篩選,直至篩選結果與所述分頁訪問請求匹配。10.一種有序數(shù)據(jù)的訪問裝置,其特征在于,包括接口模塊,用于接收用戶針對有序數(shù)據(jù)的分頁訪問請求;計算模塊,用于依據(jù)所述分頁訪問請求,計算相應記錄的訪問偏移和訪問長度;覆蓋獲取模塊,用于依據(jù)所述訪問偏移和訪問長度,獲取所述分頁訪問請求對應的記錄覆蓋的塊及相應的字段區(qū)間;其中,所述塊位于所述有序數(shù)據(jù)的磁盤文件中,在每個塊中記錄有相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目;及訪問模塊,用于依據(jù)所述覆蓋的字段區(qū)間,訪問數(shù)據(jù)庫中的有序數(shù)據(jù)。全文摘要本申請?zhí)峁┝艘环N有序數(shù)據(jù)的記錄方法和裝置,一種有序數(shù)據(jù)的訪問方法和裝置,其中的記錄方法具體包括針對有序數(shù)據(jù),建立磁盤文件;在該磁盤文件中將所述有序數(shù)據(jù)按塊方式進行記錄,所述塊的數(shù)量為兩個或多個,所述記錄過程包括在每個塊中記錄相應有序數(shù)據(jù)的字段區(qū)間和該字段區(qū)間內(nèi)的記錄數(shù)目,其中,在數(shù)據(jù)庫中所述有序數(shù)據(jù)按照所述字段進行有序存儲。本申請只需從所述特定分頁內(nèi)容所對應的記錄所覆蓋的塊及相應的區(qū)間中讀取數(shù)據(jù),能夠做到盡量避免讀取冗余數(shù)據(jù),以減少磁盤的IO操作。文檔編號G06F12/06GK103019951SQ201110280428公開日2013年4月3日申請日期2011年9月20日優(yōu)先權日2011年9月20日發(fā)明者佘智勇申請人:阿里巴巴集團控股有限公司