[发明专利]一种分布式数据库多列复合查询的系统及方法无效
申请号: | 201310615977.X | 申请日: | 2013-11-26 |
公开(公告)号: | CN103631910A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 孙杰;阎星娥;赵万亮;杨昆 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 430070 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 复合 查询 系统 方法 | ||
技术领域
本申请属于信息技术领域,尤其涉及一种分布式数据库多列复合查询的系统及方法。
背景技术
当前很多行业,每天都在产生大量的数据,随着技术和业务的发展,数据产生的速度不断加快,数据量不断膨胀。对于这种海量数据集,要进行存储并从中快速的查找需要的数据,传统的数据库已经不太适合,于是诞生了各种分布式数据库。
在大规模的数据管理中,影响数据查询速度的关键因素在于需要访问的数据量和磁盘IO。索引技术是数据库实践中提高查询性能的重要方法。
目前常见的分布式数据库系统中,针对多列查询,即查询条件中包括多个索引键值的查询,通常有如下几种处理方式:
1.依据各个索引键值分别做索引查询,得到一系列结果集,然后根据各个索引键值之间的逻辑关系,对各结果集取交集或取并集,最终得到一个没有重复的结果集。合并时需要依次查找每个结果集中的每条结果是否存在于其他结果集之中,为提高合并效率,通常又有两种具体实现方式:
a)对各结果集进行排序,对排序后的结果集再做合并;
b)将各结果集的值存入HASH容器中,提高查找速度。
2.从多个索引键值中,选取一个选择性比较高的做索引查询,得到一个结果集,扫描此结果集内的全部数据,使用查询条件中其他未做索引查询的索引键值对这些数据做过滤,得到最终的查询结果集。
比如下面的查询:
select*from user_info where username=‘CC’and sex=‘male’,
单独根据username查找得到的结果数比较少,即username列的选择性比较高,于是只根据username=‘CC’这一条件做查找,遍历其结果集,将其中满足条件sex=‘male’的结果返回给查询用户。
然而,现有技术在多列查询时,存在效率低下、资源占用率较高等问题。
在前述处理方式1(a)中,需要对各个结果集做排序,必须等各索引键值的查询全部结束,才能完成排序,排序完成后才能开始做合并和返回结果。采用这种方式时,如果有一个结果集的数据量很大,即使其余结果集的数据量都很小,也无法很快返回结果,其响应速度受制于最慢的一个子查询。
在前述处理方式1(b)中,需要将各结果集存入HASH类容器,这样会占用较大的内存,当结果集数据量很大时,还会超过系统最大负荷。
前述处理方式2,只适用于多个索引键值之间逻辑关系为与的情况,如果多个索引键值之间的逻辑关系为或,则不适用。其次,由于实际运行环境中的业务和数据复杂多变,准确选取可选择性大的索引键值并不容易做到,有时甚至是无法做到,这样单对一个索引键值做查询会得到很多结果,将这些索引结果对应的数据全部从原始数据存储模块中读出来做过滤,会造成大量的磁盘IO,而过大的数据访问量和磁盘IO正是海量数据库的常见性能瓶颈所在。
发明内容
本专利申请要解决的技术问题是:提供一种在分布式数据库多列复合查询的优化方法,解决当前分布式数据库系统针对多列查询效率低下、资源占用率较高等问题。
为了解决上述技术问题,本专利申请提供了一种分布式数据库多列复合查询的系统及方法。本申请所述系统由存储子系统、索引子系统、线性序列生成器、入库模块、查询模块组成,其中:
存储子系统采用分布式文件系统,包括分区存储的多个数据块,用于存储完整的原始数据;
索引子系统采用分布式列存储数据库,用于存储数据的索引;
线性序列生成器在数据入库前为每一条数据记录生成一个单调递增的序列值;
入库模块负责将原始数据写入存储子系统,并在索引子系统中建立对应的索引;
查询模块又分为查询解析模块、索引查询模块、原始数据扫描模块等儿个子模块,查询模块负责处理用户的查询请求,返回查询结果。
在数据入库建立索引时,为每一条数据记录生成一个单调递增序列值,将索引字段的值和单调递增序列值组合作为索引表的行键。索引扫描时,返回结果按行键顺序排序。这样,在根据某一个指定的索引键值做查询时,得到的结果是按其序列值排序的。因而,对多个索引键值的查询结果做合并,是对多个有序队列做归并,其执行效率较高且资源占用率较低,有助于提高系统的查询响应速度和可支持的并发数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310615977.X/2.html,转载请声明来源钻瓜专利网。