[發明專利]一種HASH索引數據的存儲、讀取方法與系統在審
| 申請號: | 202010581485.3 | 申請日: | 2020-06-23 |
| 公開(公告)號: | CN111767436A | 公開(公告)日: | 2020-10-13 |
| 發明(設計)人: | 王金山 | 申請(專利權)人: | 北京思特奇信息技術股份有限公司 |
| 主分類號: | G06F16/901 | 分類號: | G06F16/901 |
| 代理公司: | 北京匯信合知識產權代理有限公司 11335 | 代理人: | 林聰源 |
| 地址: | 100086 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 hash 索引 數據 存儲 讀取 方法 系統 | ||
本發明公開了一種HASH索引數據的存儲、讀取方法與系統,所述HASH索引數據對應的內存值中儲存有索引記錄;索引記錄的條數由擁有多少HASH值重復的數據決定;索引數據格式為依次排列的索引標志、索引值、下一條指針和下一條被刪除的記錄指針。HASH索引數據的存儲方法為:將多條HASH值重復的數據記錄,存儲在同一個鏈表中;插入索引記錄時,當鏈表頭部索引記錄的“索引標志”為在用狀態,則直接復用頭部索引記錄;當鏈表頭部索引記錄的“索引標志”為已刪除狀態,則取出頭部索引記錄的下一條指針所指向的記錄。解決了當前采用HASH索引的某些值重復度非常高時不能夠快速的插入和刪除的問題。
技術領域
本發明涉及內存數據庫索引數據技術領域,具體涉及一種HASH索引數據的存儲、讀取方法與系統。
背景技術
為了能夠快速的從海量內存記錄中查找特定的記錄,需要為頻繁訪問的字段創建索引。針對等值查找,一般使用HASH索引。
傳統的HASH索引,當HASH值重復時,一般采用鏈表存儲,也就是將重復的值都存儲在同一個鏈表上。如果某個索引值的重復度很高,那么其對應的鏈表就會特別長。針對內存數據庫的使用場景,一般會對索引記錄做頻繁的插入刪除操作,出于高性能的考慮,刪除操作不是真的的刪除,而是在對應記錄處打上刪除標志,以便后續的插入操作可以復用這塊內存。因此在插入一條索引記錄時,由于需要復用之前已刪除的內存空間,就需要順序遍歷整個鏈表,以便找到某個被刪除的位置,然后把新記錄放入。
在表數據量很大的情況下,比如重復數據超過100萬條記錄時,插入會變得非常慢。
發明內容
針對當前采用HASH索引的某些值重復度非常高時不能夠快速的插入和刪除的問題,本發明提供一種HASH索引數據的存儲、讀取方法與系統。
本發明公開了一種HASH索引數據的存儲、讀取方法,所述HASH索引數據對應的內存值中儲存有索引記錄;
所述索引記錄的條數由擁有多少HASH值重復的數據決定;
所述索引數據格式為依次排列的索引標志、索引值、下一條指針和下一條被刪除的記錄指針。
優選地,上述HASH索引數據的存儲方法為:
將多條HASH值重復的數據記錄,存儲在同一個鏈表中;
插入索引記錄時,當鏈表頭部索引記錄的“索引標志”為1,則直接復用頭部索引記錄;當鏈表頭部索引記錄的“索引標志”為0,則取出頭部索引記錄的下一條指針所指向的記錄,若頭部索引記錄的下一條指針所指向的記錄為空,則表示沒有可復用記錄,直接在頭部插入一條新記錄即可;如果頭部索引記錄的下一條指針所指向的記錄不為空,則復用頭部索引記錄的下一條指針所指向的那條記錄。
優選地,上述索引記錄的“索引標志”為1表示當前索引記錄狀態為在用,所述索引記錄的“索引標志”為0表示當前索引記錄狀態為已刪除。
優選地,上述HASH索引數據的讀取方法為根據HASH值、索引標志和索引值進行查詢及數據讀取;具體過程如下:
先根據HASH值進行索引,然后在對應HASH值的索引記錄中進行查詢,查詢過程為先讀取索引標志,讀取索引標志為1的索引記錄中的索引值,與查詢的索引值進行比較,直到找到對應索引記錄。
優選地,上述HASH索引數據的刪除方法為:
索引記錄被刪除時,不釋放索引空間,也不從索引鏈表中刪除,只是修改索引標志為0;
在刪除其中一條索引記錄時,如果它不在鏈表頭部,則將頭部記錄的下一條指針所指向的記錄指向當前刪除的索引記錄,當前刪除的索引記錄的下一條被刪除的記錄指針指向原先鏈表頭部記錄的下一條指針所指向的記錄。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思特奇信息技術股份有限公司,未經北京思特奇信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010581485.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種業務智能受理的方法和裝置
- 下一篇:一種基于卡券的前向規則控制系統
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





