欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于拉鏈信息的索引存儲管理方法

文檔序號:6399989閱讀:524來源:國知局
專利名稱:一種基于拉鏈信息的索引存儲管理方法
技術領域
本發(fā)明涉及數(shù)據(jù)庫、信息檢索領域,尤其涉及一種基于拉鏈信息的索引存儲管理方法。
背景技術
Web的出現(xiàn)極大地推動了數(shù)據(jù)庫系統(tǒng)的研究,同時,一般信息檢索領域的各種技術也在Web信息檢索中獲得新生,對信息檢索、數(shù)據(jù)庫系統(tǒng)以及Web本身的研究正在以多種方式進行融合。如何快速地從存儲的大量數(shù)據(jù)中找滿足用戶需求的信息已經(jīng)成為數(shù)據(jù)庫和信息檢索領域研究的新熱點。在數(shù)據(jù)庫系統(tǒng)中,通常使用索引來協(xié)助快速查詢,提高數(shù)據(jù)庫表數(shù)據(jù)訪問速度。一般來說,數(shù)據(jù)庫存儲的基本單位是頁,存儲信息的物理文件分配的磁盤空間可以從邏輯上劃分成頁,磁盤I/o操作在頁級執(zhí)行。當為一張空表創(chuàng)建索引時,數(shù)據(jù)庫系統(tǒng)將分配一個索引頁,該索引頁在插入數(shù)據(jù)前一直是空的。此頁此時既是根結點,也是葉結點。當往表中插入一行數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)即向此根結點中插入一行索引記錄。當根結點滿時,數(shù)據(jù)庫系統(tǒng)大抵按以下步驟進行分裂:1、創(chuàng)建兩個兒子結點。2、將原根節(jié)結中的數(shù)據(jù)近似地拆成兩半,分別寫入新的兩個兒子結點。3、根結點中加上指向兩個兒子結點的指針。通常狀況下,由于索引記錄僅包含索引字段值(以及4-9字節(jié)的指針),索引實體比真實的數(shù)據(jù)行要小許多,因此,索引頁相較數(shù)據(jù)頁來說要密集許多。一個索引頁可以存儲數(shù)量更多的索引記錄,這意味著在索引中查找時,在I/o上占很大的優(yōu)勢。目前,數(shù)據(jù)庫索引的數(shù)據(jù)結構主要是基于B-樹及其變種。B樹是一種性能很高的外存多路查找樹,具有平衡,層數(shù)較少等優(yōu)點,適用于系統(tǒng)對大塊數(shù)據(jù)的讀寫優(yōu)化。在插入數(shù)據(jù)時,B樹會對節(jié)點進行檢測,通過及時調整,使之達到平衡。一般來說,基于B樹的索引的物理文件組織包括B樹文件和數(shù)據(jù)文件,索引的邏輯類型包括以下兩類:1、聚集索引,表數(shù)據(jù)按照索引的順序來存儲。對于聚集索引,葉子結點即是數(shù)據(jù)頁,不再有另外單獨的數(shù)據(jù)文件。相對于非聚集索引來說,它插入數(shù)據(jù)的速度較慢,時間主要花費在“物理存儲的排序”上,但查詢數(shù)據(jù)時速度較快,因為數(shù)據(jù)都存儲在同一棵B樹里。2、非聚集索引,表數(shù)據(jù)存儲順序與索引順序無關。對于非聚集索引,葉結點是由索引頁組成,包含索引字段值及指向數(shù)據(jù)塊的邏輯指針。然而,目前的索引存儲方案也存在著一些缺陷,主要是更新索引時,由于插入的數(shù)據(jù)對應的鍵在B樹中可能已存在,這時如果直接更新物理數(shù)據(jù)文件,需要先找到該鍵對應的數(shù)據(jù)塊在文件中的位置,然后在文件內部追加寫入數(shù)據(jù)。但是,目前寫入文件操作只支持在文件尾部追加寫入,因此該操作需要重新排放文件內已有的數(shù)據(jù)頁,將新加入的數(shù)據(jù)寫入恰當?shù)奈恢?,導致文件碎片較多,降低了數(shù)據(jù)更新和查詢的性能。而過多的文件碎片會使系統(tǒng)在讀文件的時候來回尋找,引起系統(tǒng)性能下降,嚴重的話還可能導致存儲文件的丟失。

發(fā)明內容
為解決上述中存在的問題與缺陷,本發(fā)明提供了一種基于拉鏈信息的索引存儲管理方法。所述技術方案如下:一種基于拉鏈信息的索引存儲管理方法,所述索引的物理文件組織包括:B樹索引文件、拉鏈文件和數(shù)據(jù)文件;所述方法包括:A根據(jù)鍵值對將數(shù)據(jù)寫入數(shù)據(jù)文件;B根據(jù)寫入的數(shù)據(jù)信息構造拉鏈信息塊;C判斷插入的數(shù)據(jù)鍵值對在B樹中是否存在,并相應地更新B樹文件和拉鏈信息文件。本發(fā)明提供的技術方案的有益效果是:在物理文件設計上添加了拉鏈文件,在索引存儲的邏輯處理中,基于拉鏈信息項進行數(shù)據(jù)操作,為數(shù)據(jù)的高效插入、更新和查詢提供了支持,提高了數(shù)據(jù)處理性能。


圖1是基于拉鏈信息的索引存儲管理方法流程圖;圖2是基于拉鏈信息的索引的存儲架構圖;圖3是基于拉鏈信息的索引存儲管理方法的實現(xiàn)流程圖;圖4是基于拉鏈信息的索引存儲管理方法的查詢流程圖。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述:參見圖1,為基于拉鏈信息的索引存儲管理方法流程,所述索引的物理文件組織包括:B樹索引文件、拉鏈文件和數(shù)據(jù)文件;所述方法包括以下步驟:步驟10根據(jù)鍵值對將數(shù)據(jù)寫入數(shù)據(jù)文件;根據(jù)新的鍵值對,將數(shù)據(jù)寫入數(shù)據(jù)文件,同時記錄當前寫入數(shù)據(jù)在數(shù)據(jù)文件中的偏移量offset、數(shù)據(jù)長度datasize及數(shù)據(jù)的個數(shù)num。步驟20根據(jù)寫入的數(shù)據(jù)信息構造拉鏈信息塊;根據(jù)數(shù)據(jù)在數(shù)據(jù)文件中的偏移量offset、數(shù)據(jù)長度datasize、數(shù)據(jù)的個數(shù)num及拉鏈信息塊指針prevEntity構造一個拉鏈信息塊。步驟30判斷插入的數(shù)據(jù)鍵值對在B樹中是否存在,并相應地更新B樹文件和拉鏈信息文件。如果不存在,將拉鏈彳目息塊中的prevEntity設直為_1,并將拉鏈彳目息塊與入拉鏈信息文件,并將當前拉鏈信息塊的塊號做為key-value鍵值對的value值插入B樹中。如果存在,將拉鏈信息塊的指向上一個拉鏈信息塊的指針prevEntity的值設置為已存在key的value值,并將拉鏈信息塊寫入拉鏈信息文件,同時更新key的value值為當前拉鏈信息塊的塊號(如圖3所示)。上述B樹中的每個葉子節(jié)點存儲著拉鏈文件中某個拉鏈信息塊的塊號,拉鏈文件中的每個拉鏈信息塊存儲著對應的數(shù)據(jù)塊在數(shù)據(jù)文件中的位置信息,數(shù)據(jù)文件存放的是真正的數(shù)據(jù)。參見圖2,為基于拉鏈信息的索引的存儲架構,索引的物理文件組織包括B樹索引文件、拉鏈文件和數(shù)據(jù)文件。B樹中的每個葉子節(jié)點存儲著拉鏈文件中某個拉鏈信息塊的塊號,拉鏈文件中的每個拉鏈信息塊存儲著對應的數(shù)據(jù)塊在數(shù)據(jù)文件中的位置信息,包括在數(shù)據(jù)文件中的偏移量offset、數(shù)據(jù)長度datasize、數(shù)據(jù)的個數(shù)num以及指向同一個鍵的上一個拉鏈快的指針,數(shù)據(jù)文件中的每個數(shù)據(jù)塊存儲的是真實的數(shù)據(jù)。參見圖4,是基于拉鏈信息的索引存儲管理方法的查詢流程,包括:步驟401根據(jù)新的key在B樹中查詢,判斷該key是否存在,如果不存在,執(zhí)行步驟407 ;如果存在,執(zhí)行步驟402。步驟402取得key對應的拉鏈信息塊塊號值。步驟403根據(jù)拉鏈信息塊號值在拉鏈信息文件中讀取相應的拉鏈信息塊信息。步驟404根據(jù)拉鏈信息塊中的記錄的數(shù)據(jù)文件中的偏移量off set、數(shù)據(jù)個數(shù)num、數(shù)據(jù)長度datasize,讀取數(shù)據(jù)文件中的數(shù)據(jù)。步驟405判斷拉鏈信息塊中的指向上一個拉鏈信息塊的指針pervEntity是否等于-1,如果等于-1,執(zhí)行步驟407,否則,執(zhí)行步驟406。步驟406取得上一個拉鏈信息塊的指針pervEntity對應的拉鏈信息塊號值,然后執(zhí)行步驟403。 步驟407結束本次查詢。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種基于拉鏈信息的索引存儲管理方法,其特征在于,所述索引的物理文件組織包括:B樹索引文件、拉鏈文件和數(shù)據(jù)文件;所述方法包括: a根據(jù)鍵值對將數(shù)據(jù)寫入數(shù)據(jù)文件; b根據(jù)寫入的數(shù)據(jù)信息構造拉鏈信息塊; c判斷插入的數(shù)據(jù)鍵值對在B樹中是否存在,并相應地更新B樹文件和拉鏈信息文件。
2.根據(jù)權利要求1所述的基于拉鏈信息的索引存儲管理方法,其特征在于,所述步驟a還包括:記錄寫入數(shù)據(jù)在數(shù)據(jù)文件中的偏移量、數(shù)據(jù)長度及數(shù)據(jù)的個數(shù),并根據(jù)數(shù)據(jù)在數(shù)據(jù)文件中的偏移量、數(shù)據(jù)長度及數(shù)據(jù)的個數(shù)讀取數(shù)據(jù)文件中的數(shù)據(jù)。
3.根據(jù)權利要求1所述的基于拉鏈信息的索引存儲管理方法,其特征在于,所述步驟c具體包括: 數(shù)據(jù)鍵值對在B樹中不存在,設置拉鏈信息塊指向上一個拉鏈信息塊的指針值,且將拉鏈信息塊寫入拉鏈信息文件,并將拉鏈信息塊的塊號作為鍵值對的值插入B樹中; 數(shù)據(jù)鍵值對在B樹中存在,將當前拉鏈信息塊指向上一拉鏈信息塊的指針值設置為鍵值,并將拉鏈信息塊寫入拉鏈信息文件,同時更新鍵值為當前拉鏈信息塊的塊號。
全文摘要
本發(fā)明公開了一種基于拉鏈信息的索引存儲管理方法,所述索引的物理文件組織包括B樹索引文件、拉鏈文件和數(shù)據(jù)文件;所述方法包括根據(jù)鍵值對將數(shù)據(jù)寫入數(shù)據(jù)文件;根據(jù)寫入的數(shù)據(jù)信息構造拉鏈信息塊;判斷插入的數(shù)據(jù)鍵值對在B樹中是否存在,并相應地更新B樹文件和拉鏈信息文件。本發(fā)明在物理文件設計上添加了拉鏈文件,在索引存儲的邏輯處理中,基于拉鏈信息項進行數(shù)據(jù)操作,為數(shù)據(jù)的高效插入、更新和查詢提供了支持,提高了數(shù)據(jù)處理性能。
文檔編號G06F17/30GK103116652SQ20131007028
公開日2013年5月22日 申請日期2013年3月6日 優(yōu)先權日2013年3月6日
發(fā)明者陳琳, 湯汨寶, 夏冬, 王奎 申請人:同方知網(wǎng)(北京)技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜鼓县| 肥东县| 乐业县| 台东市| 金塔县| 上思县| 平陆县| 泰州市| 吴桥县| 邹城市| 香格里拉县| 鲜城| 皋兰县| 吴堡县| 廉江市| 临澧县| 中超| 淮南市| 郎溪县| 申扎县| 六盘水市| 峨山| 柳河县| 繁昌县| 黑山县| 土默特左旗| 辰溪县| 宁河县| 灵宝市| 馆陶县| 禄劝| 尤溪县| 额敏县| 墨江| 铜陵市| 定安县| 合江县| 镇雄县| 盐亭县| 桑植县| 班玛县|