一种数据库查询、数据块划分方法和装置制造方法及图纸

技术编号:18458759 阅读:23 留言:0更新日期:2018-07-18 12:41
本发明专利技术公开了一种数据库查询、数据块划分方法和装置,所述数据库查询方法包括:将用户发送的查询条件与查询单元集合中各查询单元进行比较,根据比较结果生成查询向量;将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,根据并操作结果选取向量;根据所述查询条件,在选取的向量所对应的数据块中进行查询,得到查询结果;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。应用本发明专利技术以便于查询时实现更精细化的跳读,提高查询效率,且付出的存储成本较小。

A database query and data block partition method and device

The present invention discloses a database query, data block division method and device. The database query method includes: comparing the query conditions sent by the user with the query units in the query unit set, and generating the query vectors according to the comparison results; and the query vectors are separately from the data blocks in the database. The corresponding vector is carried out and operated, and the vector is selected according to the operation result; the query result is obtained in the data block corresponding to the selected vector according to the query condition, and the query unit set is formed in advance by the query unit decomposed in the query workload. The invention can realize more refined skip reading when querying, improve query efficiency and reduce the storage cost.

【技术实现步骤摘要】
一种数据库查询、数据块划分方法和装置
本专利技术涉及数据库
,特别是指一种数据库查询、数据块划分方法和装置。
技术介绍
随着数据量的增长和用户要求的查询延迟的不断降低,数据库的查询处理器面临巨大的挑战,它需要近乎实时地对大量的数据进行及时地处理。为了提高数据处理的速度,其中一个重要的技术是想办法忽略掉一些和查询无关的数据的扫描,提高查询处理速度。通过给每个数据块里包含的记录,维护一些描述性信息(即元信息),查询处理器可以忽略某些数据块的扫描,如果这些元信息表明,这个数据块不包含任何和查询有关的数据。但是,能否真正地忽略(也称为跳读)部分数据,依赖于数据的分块(也称为分区),和查询条件(过滤条件)的匹配程度。目前一种支持跳读技术的查询方法是基于水平划分的数据库表:在数据库中可以使用范围(Range)或者哈希(Hash)数据划分方法,实现负载均衡。也就是数据经过划分之后,我们可以维护划分得到的数据块的统计信息,比如某些查询字段的最大值、最小值、记录数量等,利用这些统计信息,查询处理器,可以忽略一些数据块,无需进行扫描。比如,当查询条件为“时间>=20170101and时间<=20170105”,那么“时间”字段的取值在这个范围之外的数据块,就可以被跳读(即忽略),不用扫描。这种方法实现的是比较粗粒度的数据划分,无法实现更精细化的跳读。另一种支持跳读技术的查询方法是基于物化视图选择方案的方法:所谓物化视图,是把查询的结果保存起来,下次查询到来的时候,如果查询条件完全一样,直接把先前的结果返回即可,不用再执行一遍查询,加快查询的处理。如果下次来的查询,如果查询条件和已有的查询(建立物化视图的那个查询)的查询条件不一样,但是根据判断,新的查询可以从物化视图中遴选一部分记录形成查询结果,物化视图仍然是有用的。物化视图选择,就是新查询来的时候,选择合适的物化视图,直接组为答案或者从已有物化视图过滤出答案。但是,物化视图需要付出相当大的存储成本,因为每个需要物化的查询都需要存储空间。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种数据库查询、数据块划分方法和装置,以便于查询时实现更精细化的跳读,提高查询效率,且付出的存储成本较小。基于上述目的本专利技术提供一种数据库查询方法,包括:将用户发送的查询条件与查询单元集合中各查询单元进行比较,根据比较结果生成查询向量;将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,根据并操作结果选取向量;根据所述查询条件,在选取的向量所对应的数据块中进行查询,得到查询结果;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。其中,所述查询向量中的元素与所述查询单元集合中的查询单元一一对应,所述查询向量中的元素的取值,根据所述查询条件是否包含该元素所对应的查询单元的比较结果决定。其中,所述根据并操作结果选取向量,具体为:选取与所述查询向量执行并操作后得到的向量元素均为1的向量。本专利技术还提供一种数据块划分方法,包括:针对数据库中的每个元组,生成与该元组对应的元组向量;其中,所述元组向量中的元素与查询单元集合中的查询单元一一对应,且元素排序与所述查询向量中的元素排序一致;所述元组向量中元素的取值,根据该元组是否满足所述元素所对应的查询单元的情况决定;将元组向量相同的元组合并到同一数据块中,且将该数据块与该元组向量对应;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。进一步,在所述将元组向量相同的元组合并到同一数据块后,还包括:将相近的元组向量划分到同一向量组中;将同一向量组中各元组向量所对应的数据块进行合并;其中,合并后的数据块所对应的向量为所述相近的元组向量之间进行并操作后得到的向量。其中,所述将相近的元组向量划分到同一向量组中,具体包括:将每个元组向量单独划分到一个向量组中,作为初始划分得到的向量组;进行至少一次向量组合并;在一次向量组合并过程中:依据当前向量组的整体代价指标C(P)将相近的两个向量组合并,使得相近的元组向量划分到同一向量组中;其中,C(P)根据如下公式二计算:其中,n表示当前向量组的数量,C(Pi)根据如下公式一计算:公式一中,d为查询单元集合中查询单元的数量,|Pi|表示Pi中的元组向量的模,wj是Fj所涉及的查询条件的数量,Fj为所述查询单元集合中的第j个查询单元,u(Pi)j)为u(Pi)的第j比特,其在Pi所对应的任何一个元组,都不符合Fj时取值为0,否则为1;其中,Pi表示第i个向量组。本专利技术还提供一种数据库查询装置,包括:查询向量生成模块,用于将用户发送的查询条件与查询单元集合中各查询单元进行比较,根据比较结果生成查询向量;向量选取模块,用于将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,根据并操作结果选取向量;数据查询模块,用于根据所述查询条件,在选取的向量所对应的数据块中进行查询,得到查询结果。其中,所述查询向量中的元素与所述查询单元集合中的查询单元一一对应,所述查询向量中的元素的取值,根据所述查询条件是否包含该元素所对应的查询单元的比较结果决定。较佳地,所述向量选取模块具体用于将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,选取与所述查询向量执行并操作后得到的元素均为1的向量。进一步,所述装置还包括:数据块划分模块,用于针对所述数据库中的每个元组,生成与该元组对应的元组向量;将元组向量相同的元组合并到同一数据块中,且将该数据块与该元组向量对应;其中,所述元组向量中的元素与所述查询单元集合中的查询单元一一对应,且元素排序与所述查询向量中的元素排序一致;所述元组向量中元素的取值,根据该元组是否满足所述元素所对应的查询单元的情况决定。进一步,所述数据块划分模块还用于将相近的元组向量划分到同一向量组中;将同一向量组中各元组向量所对应的数据块进行合并;其中,合并后的数据块所对应的向量为所述相近的元组向量之间进行并操作后得到的向量。本专利技术还提供一种数据块划分装置,包括上述的数据块划分模块。本专利技术实施例的技术方案中,根据对查询工作负载的分解结果,并通过优化技术(比如聚类算法)自动完成元组到数据块的映射关系,并建立数据块所对应的向量以便于作为后续查询的索引,相比现有技术简单的范围分区或者哈希分区,或人为地制定数据块分区策略进行数据块划分,可以得到更加细致的数据块,且数据块的划分更为合理,更便于在后续基于此划分的数据块基础上实现精细化的跳读,提高查询效率。附图说明图1为本专利技术实施例提供的一种数据块划分方法的流程图;图2为本专利技术实施例提供的一种将相近的元组向量的元组向量对应的数据块进行合并的方法流程图;图3为本专利技术实施例提供的一种将相近的两个向量组合并的方法流程图;图4为本专利技术实施例提供的一种数据库查询方法的流程图;图5为本专利技术实施例提供的一种数据库查询装置的内部结构图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例本文档来自技高网
...

【技术保护点】
1.一种数据库查询方法,包括:将用户发送的查询条件与查询单元集合中各查询单元进行比较,根据比较结果生成查询向量;将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,根据并操作结果选取向量;根据所述查询条件,在选取的向量所对应的数据块中进行查询,得到查询结果;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。

【技术特征摘要】
1.一种数据库查询方法,包括:将用户发送的查询条件与查询单元集合中各查询单元进行比较,根据比较结果生成查询向量;将所述查询向量分别与所述数据库中各数据块所对应的向量进行并操作,根据并操作结果选取向量;根据所述查询条件,在选取的向量所对应的数据块中进行查询,得到查询结果;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。2.根据权利要求1所述的方法,其特征在于,所述查询向量中的元素与所述查询单元集合中的查询单元一一对应,所述查询向量中的元素的取值,根据所述查询条件是否包含该元素所对应的查询单元的比较结果决定。3.根据权利要求1所述的方法,其特征在于,所述根据并操作结果选取向量,具体为:选取与所述查询向量执行并操作后得到的向量元素均为1的向量。4.根据权利要求2所述的方法,其特征在于,所述数据库中的数据块是根据如下方法预先划分的:针对所述数据库中的每个元组,生成与该元组对应的元组向量;其中,所述元组向量中的元素与所述查询单元集合中的查询单元一一对应,且元素排序与所述查询向量中的元素排序一致;所述元组向量中元素的取值,根据该元组是否满足所述元素所对应的查询单元的情况决定;将元组向量相同的元组合并到同一数据块中,且将该数据块与该元组向量对应。5.根据权利要求4所述的方法,其特征在于,在所述将元组向量相同的元组合并到同一数据块后,还包括:将相近的元组向量划分到同一向量组中;将同一向量组中各元组向量所对应的数据块进行合并;其中,合并后的数据块所对应的向量为所述相近的元组向量之间进行并操作后得到的向量。6.根据权利要求5所述的方法,其特征在于,所述将相近的元组向量划分到同一向量组中,具体包括:将每个元组向量单独划分到一个向量组中,作为初始划分得到的向量组;进行至少一次向量组合并;在一次向量组合并过程中:依据当前向量组的整体代价指标C(P)将相近的两个向量组合并,使得相近的元组向量划分到同一向量组中;其中,C(P)根据如下公式二计算:其中,n表示当前向量组的数量,C(Pi)根据如下公式一计算:公式一中,d为查询单元集合中查询单元的数量,|Pi|表示Pi中的元组向量的模,wj是Fj所涉及的查询条件的数量,Fj为所述查询单元集合中的第j个查询单元,u(Pi)j)为u(Pi)的第j比特,其在Pi所对应的任何一个元组,都不符合Fj时取值为0,否则为1;其中,Pi表示第i个向量组。7.一种数据块划分方法,包括:针对数据库中的每个元组,生成与该元组对应的元组向量;其中,所述元组向量中的元素与查询单元集合中的查询单元一一对应,且元素排序与所述查询向量中的元素排序一致;所述元组向量中元素的取值,根据该元组是否满足所述元素所对应的查询单元的情况决定;将元组向量相同的元组合并到同一数据块中,且将该数据块与该元组向量对应;其中,所述查询单元集合是预先由查询工作负载中分解出的查询单元组合而成的。8.根据权利要求7所述的方法,其特征在于,在所述将元组向量相同的元组合并到同一数据块后,还包括:将相近的元组向量划分到同一向量组中;将同一向量组中各元组向量所对应的数据块进行合并;其中,合并后的数据块所对应的向量为所述相近的元组...

【专利技术属性】
技术研发人员:王继业曾楠孙乔张春光邓卜侨孙雷王晋雄付兰梅崔伟刘炜王思宁冷曼赵蕾李华勤曲传哲
申请(专利权)人:北京国电通网络技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1