本发明专利技术公开了一种自适应索引的方法和装置,属于数据库技术领域。所述方法包括:接收携带有范围查询条件的查询请求;根据所述范围查询条件,获取所述查询请求对应的至少一个第一结果数据块;在所述查询请求对应的第一结果数据块中,对块内数据无序且满足预设的代价条件的结果数据块进行块内数据排序;根据经过排序的第一结果数据块,以及未经排序的第一结果数据块,对结果数据块集合进行更新,并更新所述结果数据块集合的索引。采用本发明专利技术,可以在降低数据库前期查询过程中的资源耗费的同时,提高数据库的收敛速度。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种自适应索引的方法和装置,属于数据库
。所述方法包括:接收携带有范围查询条件的查询请求;根据所述范围查询条件,获取所述查询请求对应的至少一个第一结果数据块;在所述查询请求对应的第一结果数据块中,对块内数据无序且满足预设的代价条件的结果数据块进行块内数据排序;根据经过排序的第一结果数据块,以及未经排序的第一结果数据块,对结果数据块集合进行更新,并更新所述结果数据块集合的索引。采用本专利技术,可以在降低数据库前期查询过程中的资源耗费的同时,提高数据库的收敛速度。【专利说明】一种自适应索引的方法和装置
本专利技术涉及数据库
,特别涉及一种自适应索引的方法和装置。
技术介绍
随着数据库技术的不断发展,自适应索引技术得到了广泛的应用。自适应索引技 术是在数据库中,通过查询过程建立索引,并通过不断的查询过程不断的更新完善索引,以 提高查询效率的技术。数据库中查询的类型可以包括范围数据查询、模糊数据查询等,一般 在自适应索引技术中,索引是在范围数据查询的过程中建立并完善的。 文章 Merging Whatj s Cracked, Cracking Whatj s Merged:adaptive indexing in main memory column-stores, VLDB, 2011 提出的 HCCXHyper Crack Crack,快速分裂)算 法是一种自适应索引技术。基于HCC算法,在建立数据库初期,会按预先制定的规则将数据 划分为多个初始数据块,组成初始数据块集合。当接收到携带范围查询条件的查询请求时, 采用crack (分裂)法进行查询,把符合范围查询条件的数据从相应的初始数据块中提出, 同时对该初始数据块中剩余的数据行分裂处理,即将大于范围查询条件的数据和小于范围 查询条件的数据分别放在不同的数据块中,得到两个新的初始数据块。然后将crack法查 询到的各初始数据块中的符合范围查询条件的数据合并成一个结果数据块,每次查询的结 果数据块组成结果数据块集合。对结果数据块集合中的结果数据块建立有索引,如AVL树 (一种二叉树,以提出者的名字缩写命名)等,在索引中可以记录每个结果数据块的数据范 围。后续的查询过程中,可以在结果数据块集合和初始数据块集合中分别进行查询,在结果 数据块集合中进行范围查询时也采用crack法查询。 文章 Merging What,s Cracked, Cracking What,s Merged:adaptive indexing in main memory column-stores, VLDB, 2011 提出的 HCS (Hyper Crack Sort,快速分裂排 序)算法也是一种自适应索引技术。与HCC技术类似,在建立数据库初期,会按预先制定的 规则将数据划分为多个初始数据块,组成初始数据块集合。在HCS算法中,同样采用crack 法在初始数据块集合中进行查询,然后将crack法查询到的数据合并成一个结果数据块, 不同的是,HCS算法中,先对查询到的结果数据块进行块内数据排序,再放入结果数据块集 合中。后续的查询过程中,可以在结果数据块集合和初始数据块集合中分别进行查询,HCS 算法中,因为结果数据块中数据有序,所以在结果数据块集合中进行查询时,可以采用折半 法进行查询。 在HCC算法和HCS算法中,可以根据查询得到的结果数据块,对结果数据块集合进 行更新,具体的,如果结果数据块集合中未包含某查询得到的结果数据块的数据,则将该结 果数据块添加到结果数据块集合中。这样,基于HCC算法和HCS算法,随着数据库不断被使 用,结果数据块集合会不断增大,索引随结果数据块集合的更新而不断更新,数据库中能够 被索引的数据比例不断提升,所以索引会越来越完善,相应的查询效率也会不断的提升,此 过程可称作数据库的收敛过程。 在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题: 采用HCC算法的数据库,通过范围数据查询,不断更新结果数据块集合,同时不断 更新结果数据块集合的索引,以逐渐提升数据库的查询效率,然而,虽然通过索引中记录的 各结果数据块的数据范围,可以提高定位结果数据块的效率,但是,通过索引定位到结果数 据块之后,进一步在块内进行数据查询时,查询的效率仍然较为低下,这导致采用HCC算法 的数据库的收敛速度较慢,经常不能满足应用的需求。另外,采用HCS算法的数据库,虽然 收敛速度较快,但是在数据库前期进行的查询过程中,因为需要对结果数据块进行排序,而 导致查询处理的资源(如时间、处理资源等)耗费严重。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种自适应索引的方法和装置, 以在降低数据库前期查询过程中的资源耗费的同时,提高数据库的收敛速度。所述技术方 案如下: 第一方面,提供了一种自适应索引的方法,数据库的结果数据块集合建立有索引, 所述方法包括: 接收携带有范围查询条件的查询请求; 根据所述范围查询条件,获取所述查询请求对应的至少一个第一结果数据块; 在所述查询请求对应的第一结果数据块中,对块内数据无序且满足预设的代价条 件的结果数据块进行块内数据排序; 根据经过排序的第一结果数据块,以及未经排序的第一结果数据块,对结果数据 块集合进行更新,并更新所述结果数据块集合的索引。 第二方面,提供了一种采用如上所述的自适应索引的方法的数据查询方法,所述 方法包括: 将所述查询请求对应的第一结果数据块中的数据作为查询结果进行反馈。 第三方面,提供了一种自适应索引的装置,数据库的结果数据块集合建立有索引, 所述装置包括: 接收模块,用于接收携带有范围查询条件的查询请求; 获取模块,用于根据所述范围查询条件,获取所述查询请求对应的至少一个第一 结果数据块; 排序模块,用于在所述查询请求对应的第一结果数据块中,对块内数据无序且满 足预设的代价条件的结果数据块进行块内数据排序; 更新模块,用于根据经过排序的第一结果数据块,以及未经排序的第一结果数据 块,对结果数据块集合进行更新,并更新所述结果数据块集合的索引。 第四方面,提供了一种数据查询装置,所述数据查询装置包括如上所述的自适应 索引的装置,所述数据查询装置还包括: 反馈模块,用于将所述查询请求对应的第一结果数据块中的数据作为查询结果进 行反馈。 本专利技术实施例提供的技术方案带来的有益效果是: 本专利技术实施例中,通过代价条件的设置,可以只对排序处理的代价符合要求的结 果数据块进行排序,在数据库前期,可以降低查询过程中的资源耗费,而且,通过对满足一 定代价条件的结果数据块进行排序,可以逐步使结果数据块集合中的结果数据块有序化, 因为一次排序可以达到数次分裂才能达到的收敛效果,能够更有效的提升查询效率,所以, 数据库的收敛速度能够得到提高。从而,可以在降低数据库前期查询过程中的资源耗费的 同时,提高数据库的收敛速度。 【专利附图】【附图说明】 为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面本文档来自技高网...
【技术保护点】
一种自适应索引的方法,数据库的结果数据块集合建立有索引,其特征在于,所述方法包括:接收携带有范围查询条件的查询请求;根据所述范围查询条件,获取所述查询请求对应的至少一个第一结果数据块;在所述查询请求对应的第一结果数据块中,对块内数据无序且满足预设的代价条件的结果数据块进行块内数据排序;根据经过排序的第一结果数据块,以及未经排序的第一结果数据块,对结果数据块集合进行更新,并更新所述结果数据块集合的索引。
【技术特征摘要】
【专利技术属性】
技术研发人员:胡卫松,李曼,
申请(专利权)人:日电中国有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。