CN101256579A - 一种数据库范围查询数据组织的方法 - Google Patents

一种数据库范围查询数据组织的方法 Download PDF

Info

Publication number
CN101256579A
CN101256579A CNA2008100664721A CN200810066472A CN101256579A CN 101256579 A CN101256579 A CN 101256579A CN A2008100664721 A CNA2008100664721 A CN A2008100664721A CN 200810066472 A CN200810066472 A CN 200810066472A CN 101256579 A CN101256579 A CN 101256579A
Authority
CN
China
Prior art keywords
tree
record
index
indexed
correspondence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008100664721A
Other languages
English (en)
Inventor
万鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNA2008100664721A priority Critical patent/CN101256579A/zh
Publication of CN101256579A publication Critical patent/CN101256579A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库范围查询数据组织的方法,其用于一通讯***的数据管理,并包括以下步骤:首先根据索引关键字建立B树索引;然后,对所述B树索引以所述索引关键字建立hash索引;再次,结合所述B树索引和hash索引对数据库进行管理。采用本发明的上述方法,既可以在单位时间内完成单一查询,也可以在单位时间内完成范围查询。相对于现有技术中只采用B树索引的查找方式,从原B树索引的logn+m减少了logn-2次操作,这在频繁的查询操作中是非常有益的,并且在数据量较大的数据库***中本发明的方法也具有明显的效果。

Description

一种数据库范围查询数据组织的方法
技术领域
本发明涉及现代内存数据库查询技术,具体涉及一种数据库范围查询数据组织的方法。
背景技术
无线通讯技术的发展对数据管理提出了越来越高的要求,特别是在***通讯***中对数据查询速度的更是提出了更高的要求,传统的范围查询一般采用B树的方式对某些列建立索引以辅助查询,找到查询的最小值,找到查询的最大值就可以用常数时间遍历需要的数据。但是对于最大值和最小值的查询却是对数时间复杂度。数据库中另一种O(1)时间复杂度的索引方案是采用hash方法建立索引,但是该方法却不能实现范围查询的目的。
目前对于实时***,特别是未来的基站***,其数据量比较大,传统的范围查询方案逐渐地不能满足其要求。比如,现在常用的各种数据库的范围查询所采用的B树索引,其在查小范围记录的时候查询效率比较低,无法满足大数据量查询的需求。所以就需要提供一种更高效地查询方法。
发明内容
本发明的目的在于提出一种数据库范围查询数据组织的方法,其属于一种新的索引组织方案,该方案既能很好地适应单一记录查询,也能更有效地实现范围查询,并且这两种查询在效率上没有任何区别。
为了实现上述目的,本发明采用如下技术方案:
本发明的方法用于一通讯***的数据管理,并包括以下步骤进行:
A、根据索引关键字建立B树索引;
B、对所述B树索引以所述索引关键字建立hash索引;
C、结合所述B树索引和hash索引对数据库进行管理。
其中,在hash索引中,每个hash索引项记录有:所述索引关键字,以及所述索引关键字对应的B树节点地址。
其中,所述步骤C采用如下过程在数据库范围内进行单记录查询:
C11、根据预查询记录的索引关键字,在所述hash索引处查找与预查询记录相对应的hash索引项;
C12、从查找到的hash索引项中读取对应的B树节点地址;
C13、根据读取的B树节点地址,在所述B树索引处查找与预查询记录相对应于的B树索引项。
其中,所述步骤C采用如下过程在数据库范围内进行范围查询:
C21、根据所述单记录查询的过程,查找预查询范围的最大记录和最小记录对应的B树索引项;
C22、从所述最小记录的B树索引项对应的B树节点地址开始,根据B树索引一直顺序查找,直到找到所述最大记录的B树索引项对应的B树节点地址,在所述最小记录对应的B树节点地址和所述最大记录对应的B树节点地址之间的数据,就是预查询范围内的数据。
其中,所述步骤C采用如下过程在数据库范围内进行记录***:
C31、根据预***记录的索引关键字,将该记录***到所述B树索引中;
C32、对所述预***记录的索引关键字进行hash算法计算,并根据计算结果,在hash索引中***该记录对应的hash索引项。
其中,所述步骤C采用如下过程在数据库范围内进行记录删除:
C41、根据预删除记录的索引关键字,查找该记录对应的hash索引项;
C42、读取所述hash索引项中记录的B树节点地址,并删除该hash索引项;
C43、根据读取的B树节点地址,在B树索引中查找并删除对应的B树索引项。
其中,所述范围查询过程中,所述步骤C21与步骤C22之间还包括以下步骤:若预查询范围的最大记录和最小记录对应的B树索引项查询不命中,则采用在所述B树索引中***虚拟节点的方式,构造所述最大记录和最小记录对应的B树索引项。其中,根据所述B树索引中***的虚拟节点,在所述hash索引中***对应的hash节点。
其中,所述***虚拟节点的方式采用如下过程:根据预查询记录的索引关键字,在B树索引处查找大于预查询记录的第一B树索引项和小于预查询记录的第二B树索引项,并在所述第一B树索引项和第二B树索引项之间***一虚拟B树节点,该B树节点对应的B树索引项就是与预查询记录相对应的B树索引项。其中,当在所述B树索引处***一虚拟B树节点后,对该B树节点对应的索引关键字进行hash计算,并在所述hash索引中***该B树节点对应的hash索引项。
采用本发明的上述方法,既可以在单位时间内完成单一查询,也可以在单位时间内完成范围查询。相对于现有技术中只采用B树索引的查找方式,从原B树索引的logn+m减少了lon-2次操作,这在频繁的查询操作中是非常有益的,并且在数据量较大的数据库***中本发明的方法也具有明显的效果。
附图说明
图1为本发明索引组织的方案图。
具体实施方式
以下结合附图详细描述本发明的技术方案。
如图1所示,本发明在原有只采用B树索引的基础上,结合了hash索引方案,对数据库进行管理,使本发明同时结合了B树和hash索引两者的优点。本发明的方法用于一通讯***的数据管理,并包括以下步骤:
首先,根据原记录的索引关键字建立;
然后,对该B树索引以索引关键字建立hash索引,也就是通过对B树索引区的索引关键字进行hash计算,并根据计算结果建立hash索引区域。为了减少空间浪费,索引关键字只存在于hash索引处,B树索引只具有B树的其他非索引关键字字段,那么为了建立其两者的对应关系,如图1所示,在hash索引中,每个hash索引项记录有:索引关键字(Key1,Key2,...,KeyN-1,KeyN),以及该索引关键字分别对应的B树节点地址(BindexAddr1,BindexAddr2,...,BindexAddrN-1,BindexAddrN)。
其次,结合所述B树索引和hash索引对数据库进行管理,此管理内容包括以下几个方面:
(1)记录***操作,其主要过程如下:
当一条记录***时,首先根据预***记录的索引关键字,将该记录号及相应的B树节点数据***到B树索引中;然后,对预***记录的索引关键字进行hash计算,并根据计算结果,在hash索引中***该记录对应的hash索引项,该hash索引项记录有:索引关键字,以及该索引关键字对应的B树节点地址。
(2)记录删除操作,其主要过程如下:
当一条记录删除时,首先根据预删除记录的索引关键字,查找该记录对应的hash索引项;然后读取hash索引项中记录的B树节点地址,并删除该hash索引项;最后根据读取的B树节点地址,在B树索引中查找并删除对应的B树索引项。
(3)单记录查询操作,其主要过程如下:
单记录查询时,首先根据预查询记录的索引关键字,在hash索引处查找与预查询记录相对应的hash索引项,从该hash索引项中读取对应的B树节点地址,然后根据读取的B树节点地址,在B树索引处查找与预查询记录相对应于的B树索引项,这一过程大概为2单位时间。
(4)范围查询操作,其主要过程如下:
在进行范围查询时,首先根据上述单记录查询的过程,查找预查询范围的最大记录和最小记录对应的B树索引项;然后,从最小记录的B树索引项对应的B树节点地址开始,根据B树索引一直顺序查找,直到找到最大记录的B树索引项对应的B树节点地址,那么,在最小记录对应的B树节点地址和最大记录对应的B树节点地址之间的m个数据,就是预查询范围内的数据,这个过程的总时间是2+m个单位时间。
上述范围查询时,不一定会命中,比如预查询范围的最大记录和最小记录恰不在数据库的B树索引中,那么就存在预查询范围的最大记录和最小记录对应的B树索引项查询不命中的情况。对于这种情况,本发明采用在B树索引中***虚拟节点的方式,构造最大记录和最小记录对应的B树索引项,从而完成范围查找的操作,当范围查询结束后,删除虚拟节点。这样即完成了范围查找,而且也不影响B树索引的准确性。当B树索引中***的虚拟节点,同时在hash索引中***对应的hash节点;当删除构造的虚拟节点时,也应删除对应的hash节点,从而实时保持B树索引和hash索引的一致性。
上述关于范围查询中如何***虚拟节点,本发明提出了这样一种方式:首先根据预查询记录的索引关键字,在B树索引处查找大于预查询记录的第一B树索引项和小于预查询记录的第二B树索引项,并在所述第一B树索引项和第二B树索引项之间***一虚拟B树节点,该B树节点对应的B树索引项就是与预查询记录相对应的B树索引项。当在B树索引处***一虚拟B树节点后,对该B树节点对应的索引关键字进行hash计算,并在hash索引中***该B树节点对应的hash索引项。根据这一思想,在进行范围查询时,如果出现查询不命中的时候,可以先依据上述方法在B树索引中***预查询范围的最大记录和最小记录对应的B树节点,然后再沿着B树的节点依次找下去。例如,如图1所示,B树索引区域中叶子节点Leaf1中记录数据“1”,Leaf2中记录数据“3”,...,LeafN-1中记录数据“6”,LeafN中记录数据“8”,当预查询范围为“2”至“7”时,如果直接在B树索引中直接查找“2”和“7”都会不命中,因为B树中不存在这两值,所以通过***虚拟节点的方式,先查找大于“2”和小于“2”的B树节点,即Leaf1和Leaf2,然后在Leaf1和Leaf2之间***一个虚拟的节点记录“2”这个值,同理,在LeafN-1和LeafN之间***一个虚拟的节点记录“7”这个值,这样就可以方便范围查找了。当这次范围查找完成后,删除***的虚拟节点。
上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。

Claims (10)

1、一种数据库范围查询数据组织的方法,其用于一通讯***的数据管理,并包括以下步骤:
A、根据索引关键字建立B树索引;
B、对所述B树索引以所述索引关键字建立hash索引;
C、结合所述B树索引和hash索引对数据库进行管理。
2、根据权利要求1所述的方法,其特征在于,在hash索引中,每个hash索引项记录有:所述索引关键字,以及所述索引关键字对应的B树节点地址。
3、根据权利要求2所述的方法,其特征在于,所述步骤C采用如下过程在数据库范围内进行单记录查询:
C11、根据预查询记录的索引关键字,在所述hash索引处查找与预查询记录相对应的hash索引项;
C12、从查找到的hash索引项中读取对应的B树节点地址;
C13、根据读取的B树节点地址,在所述B树索引处查找与预查询记录相对应于的B树索引项。
4、根据权利要求3所述的方法,其特征在于,所述步骤C采用如下过程在数据库范围内进行范围查询:
C21、根据所述单记录查询的过程,查找预查询范围的最大记录和最小记录对应的B树索引项;
C22、从所述最小记录的B树索引项对应的B树节点地址开始,根据B树索引一直顺序查找,直到找到所述最大记录的B树索引项对应的B树节点地址,在所述最小记录对应的B树节点地址和所述最大记录对应的B树节点地址之间的数据,就是预查询范围内的数据。
5、根据权利要求2所述的方法,其特征在于,所述步骤C采用如下过程在数据库范围内进行记录***:
C31、根据预***记录的索引关键字,将该记录***到所述B树索引中;
C32、对所述预***记录的索引关键字进行hash算法计算,并根据计算结果,在hash索引中***该记录对应的hash索引项。
6、根据权利要求2所述的方法,其特征在于,所述步骤C采用如下过程在数据库范围内进行记录删除:
C41、根据预删除记录的索引关键字,查找该记录对应的hash索引项;
C42、读取所述hash索引项中记录的B树节点地址,并删除该hash索引项;
C43、根据读取的B树节点地址,在B树索引中查找并删除对应的B树索引项。
7、根据权利要求4所述的方法,其特征在于,所述范围查询过程中,所述步骤C21与步骤C22之间还包括以下步骤:
若预查询范围的最大记录和最小记录对应的B树索引项查询不命中,则采用在所述B树索引中***虚拟节点的方式,构造所述最大记录和最小记录对应的B树索引项。
8、根据权利要求7所述的方法,其特征在于,根据所述B树索引中***的虚拟节点,在所述hash索引中***对应的hash节点。
9、根据权利要求7所述的方法,其特征在于,所述***虚拟节点的方式采用如下过程:
根据预查询记录的索引关键字,在B树索引处查找大于预查询记录的第一B树索引项和小于预查询记录的第二B树索引项,并在所述第一B树索引项和第二B树索引项之间***一虚拟B树节点,该B树节点对应的B树索引项就是与预查询记录相对应的B树索引项。
10、根据权利要求9所述的方法,其特征在于,当在所述B树索引处***一虚拟B树节点后,对该B树节点对应的索引关键字进行hash计算,并在所述hash索引中***该B树节点对应的hash索引项。
CNA2008100664721A 2008-04-08 2008-04-08 一种数据库范围查询数据组织的方法 Pending CN101256579A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008100664721A CN101256579A (zh) 2008-04-08 2008-04-08 一种数据库范围查询数据组织的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008100664721A CN101256579A (zh) 2008-04-08 2008-04-08 一种数据库范围查询数据组织的方法

Publications (1)

Publication Number Publication Date
CN101256579A true CN101256579A (zh) 2008-09-03

Family

ID=39891406

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100664721A Pending CN101256579A (zh) 2008-04-08 2008-04-08 一种数据库范围查询数据组织的方法

Country Status (1)

Country Link
CN (1) CN101256579A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253990A (zh) * 2011-07-05 2011-11-23 广东星海数字家庭产业技术研究院有限公司 一种交互应用多媒体数据的查询方法及其装置
CN102521375A (zh) * 2011-12-19 2012-06-27 山东中创软件商用中间件股份有限公司 一种目录服务数据检索方法及***
WO2013123867A1 (zh) * 2012-02-20 2013-08-29 浪潮(北京)电子信息产业有限公司 数据索引方法和装置
CN104572990A (zh) * 2015-01-05 2015-04-29 华为技术有限公司 用于检索的方法和装置
CN104636349A (zh) * 2013-11-07 2015-05-20 阿里巴巴集团控股有限公司 一种索引数据压缩以及索引数据搜索的方法和设备
CN106202416A (zh) * 2016-07-11 2016-12-07 腾讯科技(深圳)有限公司 列表数据写方法和装置、列表数据读取方法和装置
CN106528817A (zh) * 2016-11-17 2017-03-22 中国电子科技集团公司第四十研究所 基于哈希策略的b+树时态查询方法
CN108416027A (zh) * 2018-03-09 2018-08-17 广西师范大学 一种基于范围查询边界集的自底向上合并数据分片优化方法
CN109033134A (zh) * 2018-06-06 2018-12-18 海尔优家智能科技(北京)有限公司 一种消息处理方法、装置、存储介质及计算机设备

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253990A (zh) * 2011-07-05 2011-11-23 广东星海数字家庭产业技术研究院有限公司 一种交互应用多媒体数据的查询方法及其装置
CN102521375A (zh) * 2011-12-19 2012-06-27 山东中创软件商用中间件股份有限公司 一种目录服务数据检索方法及***
CN102521375B (zh) * 2011-12-19 2013-12-11 山东中创软件商用中间件股份有限公司 一种目录服务数据检索方法及***
WO2013123867A1 (zh) * 2012-02-20 2013-08-29 浪潮(北京)电子信息产业有限公司 数据索引方法和装置
CN104636349B (zh) * 2013-11-07 2018-05-22 阿里巴巴集团控股有限公司 一种索引数据压缩以及索引数据搜索的方法和设备
CN104636349A (zh) * 2013-11-07 2015-05-20 阿里巴巴集团控股有限公司 一种索引数据压缩以及索引数据搜索的方法和设备
CN104572990A (zh) * 2015-01-05 2015-04-29 华为技术有限公司 用于检索的方法和装置
CN106202416A (zh) * 2016-07-11 2016-12-07 腾讯科技(深圳)有限公司 列表数据写方法和装置、列表数据读取方法和装置
CN106528817A (zh) * 2016-11-17 2017-03-22 中国电子科技集团公司第四十研究所 基于哈希策略的b+树时态查询方法
CN106528817B (zh) * 2016-11-17 2019-05-14 中国电子科技集团公司第四十一研究所 基于哈希策略的b+树时态查询方法
CN108416027A (zh) * 2018-03-09 2018-08-17 广西师范大学 一种基于范围查询边界集的自底向上合并数据分片优化方法
CN108416027B (zh) * 2018-03-09 2021-07-20 广西师范大学 一种基于范围查询边界集的合并数据分片优化方法
CN109033134A (zh) * 2018-06-06 2018-12-18 海尔优家智能科技(北京)有限公司 一种消息处理方法、装置、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
CN101256579A (zh) 一种数据库范围查询数据组织的方法
US11468027B2 (en) Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
CN100458779C (zh) 扩展索引的方法
CN103561133B (zh) 一种ip地址归属信息索引方法及快速查询方法
US20040205044A1 (en) Method for storing inverted index, method for on-line updating the same and inverted index mechanism
CN103020054B (zh) 模糊查询方法及***
CN102456055B (zh) 兴趣点检索的方法及装置
CN104424219B (zh) 一种数据文件的管理方法及装置
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
CN101241511A (zh) 一种基于时空数据的快速索引方法
CN105975587A (zh) 一种高性能的内存数据库索引组织与访问方法
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN103605778A (zh) 一种视频文件的定位方法、装置及***
CN112765181A (zh) 一种基于区块索引结构的数据溯源查询方法
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN109299143B (zh) 基于Redis缓存的数据互操作测试知识库的知识快速索引方法
Abbasifard et al. Efficient indexing for past and current position of moving objects on road networks
CN111782663A (zh) 一种提升聚合查询效率的聚合索引结构及聚合索引方法
WO2005066835A1 (fr) Procede d'extraction d'un enregistrement d'une page de donnees d'une base de donnees
CN112463837B (zh) 一种关系型数据库数据存储查询方法
CN110263108A (zh) 一种基于道路网的关键词Skyline模糊查询方法及***
CN115048377A (zh) 一种混合存储区块链环境下的时空关键字查询方法
CN111159175B (zh) 基于索引的非完整数据库Skyline查询方法
CN101377775A (zh) 一种内存数据库中构造冲突数据索引的方法
CN117311645B (zh) 一种lsm存储元数据读放大的优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080903