数据库操作方法、装置、设备及存储介质制造方法及图纸

技术编号:29789684 阅读:18 留言:0更新日期:2021-08-24 18:08
本申请实施例提供一种数据库操作方法、装置、设备及存储介质,该方法包括:获得数据库查询语句对应第一算子的输入数据,所述输入数据是涉及数据库中的目标物理表,且所述数据库中所述目标物理表对应行组的存储信息针对所述第一算子是可用的;基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,以得到所述第一算子的输出数据,所述输出数据是以行为单元的块数据,且所述输出数据中的同一块对应所述目标物理表的同一行组。本申请能够保持行组的存储信息对于非叶子节点的可用性。

【技术实现步骤摘要】
数据库操作方法、装置、设备及存储介质
本申请涉及数据库
,尤其涉及一种数据库操作方法、装置、设备及存储介质。
技术介绍
随着大数据的发展,传统的行(row)式数据库在查询性能和维护成本等方面逐渐不能满足需求,于是出现了列式数据库,列式数据库是以列式存储架构进行数据存储的数据库。目前,为了充分发挥列式存储的优势,提出了在列式存储结构的基础上,进一步以“行组”为单位组织数据,并对每一个行组内的数据进行独立压缩和信息统计,从而得到行组的存储信息,该存储信息可以用于表达式的优化。对于分析查询语句所得到的查询树中的叶子节点,其输入数据是数据库中基于行组为单位组织的数据,行组的存储信息针对叶子节点必定是可用的,因此可以基于行组的存储信息对叶子节点对应表达式进行优化,以提高数据库查询效率。然而,对于语法树中非叶子节点,通常存在行组的存储信息失效的情况,从而导致无法基于行组的存储信息对非叶子节点对应表达式进行优化。因此,如何保持行组的存储信息对于非叶子节点的可用性,成为目前亟待解决的问题。
技术实现思路
本申请实施例提供一种数据库操作方法、装置、设备及存储介质,用以解决现有技术中如何保持行组的存储信息对于非叶子节点的输入数据可用性的问题。第一方面,本申请实施例提供一种数据库操作方法,所述方法包括:获得数据库查询语句对应第一算子的输入数据,所述输入数据是涉及数据库中的目标物理表,且所述数据库中所述目标物理表对应行组的存储信息针对所述第一算子是可用的;基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,以得到所述第一算子的输出数据,所述输出数据是以行为单元的块数据,且所述输出数据中的同一块对应所述目标物理表的同一行组。第二方面,本申请实施例提供一种数据库操作装置,包括:获得模块,用于获得数据库查询语句对应第一算子的输入数据,所述输入数据是涉及数据库中的目标物理表,且所述数据库中所述目标物理表对应行组的存储信息针对所述第一算子是可用的;执行模块,用于基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,以得到所述第一算子的输出数据,所述输出数据是以行为单元的块数据,且所述输出数据中的同一块对应所述目标物理表的同一行组。第三方面,本申请实施例提供一种计算及设备,包括:存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如第一方面任一项所述的方法。第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第一方面任一项所述的方法。另外,本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第一方面任一项所述的方法。本申请实施例提供的数据库操作方法、装置、设备及存储介质,通过获得数据库查询语句对应第一算子的输入数据,输入数据是涉及数据库中的目标物理表,且数据库中目标物理表对应行组的存储信息针对第一算子是可用的,基于输入数据以及预设的行组属性保持策略,执行第一算子的表达式以得到第一算子的输出数据,实现了基于行组保持策略执行第一算子的表达式所得到的第一算子的输出数据,能够保持数据库中目标物理表的行组属性,由于第一算子的输出数据可以作为其他算子的输入数据,其他算子即为非叶子节点对应的算子,因此非叶子节点的输入数据能够保持数据库中目标物理表的行组属性,使得目标物理表对应行组的存储信息可以用于非叶子节点的执行,从而实现了确保行组的存储信息针对非叶子节点的可能性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请一实施例提供的数据库访问系统的结构示意图;图2为本申请一实施例提供的部分物理表中行组的示意图。图3为本申请一实施例提供的语法树的示意图;图4为本申请一实施例提供的数据库操作方法的流程示意图;图5为本申请一实施例提供的算子执行框架的示意图;图6为本申请一实施例提供的输入/输出块结构的示意图;图7-图11为本申请实施例提供的第一算子的输入输出数据的行组关系的示意图;图12为本申请一实施例提供的数据库引擎处理查询语句的流程示意图;图13为本申请一实施例提供的数据库操作装置的结构示意图;图14为本申请一实施例提供的计算机设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。相关技术中比较常用的数据库操作方法,主要包括对于分析查询语句所得到的查询树中的叶子节点,可以基于行组的存储信息对叶子节点对应表达式进行优化,以提高数据库查询效率,然而,对于语法树中非叶子节点的输入数据,通常存在行组的存储信息失效的情本文档来自技高网...

【技术保护点】
1.一种数据库操作方法,所述方法包括:/n获得数据库查询语句对应第一算子的输入数据,所述输入数据是涉及数据库中的目标物理表,且所述数据库中所述目标物理表对应行组的存储信息针对所述第一算子是可用的;/n基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,以得到所述第一算子的输出数据,所述输出数据是以行为单元的块数据,且所述输出数据中的同一块对应所述目标物理表的同一行组。/n

【技术特征摘要】
1.一种数据库操作方法,所述方法包括:
获得数据库查询语句对应第一算子的输入数据,所述输入数据是涉及数据库中的目标物理表,且所述数据库中所述目标物理表对应行组的存储信息针对所述第一算子是可用的;
基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,以得到所述第一算子的输出数据,所述输出数据是以行为单元的块数据,且所述输出数据中的同一块对应所述目标物理表的同一行组。


2.根据权利要求1所述的方法,所述基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式,包括:
在满足一定条件时,设置所述目标物理表的行组保持模式为保持;
在所述行组保持模式为保持的情况下,基于所述输入数据以及预设的行组属性保持策略,执行所述第一算子的表达式。


3.根据权利要求2所述的方法,所述满足一定条件包括下述中的一种或多种:
所述输入数据为物理表,所述输入数据为以行为单元的块数据且所述输入数据针对所述目标物理表存在行数量大于或等于第一数量阈值的块,或者,所述输入数据为以行为单元的块数据且所述输入数据针对所述目标物理表的行数量之和大于或等于第二数量阈值。


4.根据权利要求1所述的方法,所述输出数据中单个块的数据包括行组游标,所述行组游标包括所述目标物理表的表号及所述目标物理表对应行组的行组号。


5.根据权利要求1-4任一项所述的方法,所述行组属性保持策略包括:在当前输出块已满,或者待输出行与当前输出块中已输出行跨所述目标物理表对应的行组情况下,创建新输出块并将所述待输出行输出至所述新输出块中。


6.根据权利要求5所述的方法,所述第一算子包括下述中的一种或多种:Scan算子、Filter算子或Join算子。


7.根据权利要求6所述的方法,所述第一算子为Join算子,所述目标物理表包括左表和/或右表。


8.根据权利要求7所述的方法,在所述输入数据中的左表对应块满足同一块对应同一行组的条件,所述输入数据中的右表对应块不满足同一块对应同一行组的条件情况下,所述目标关系包括左表而不包括右表。


9.根据权利要求7所述的方法,在所述输入数据中的左表对应块不满足同一块对应同一行组的条件,所述输入数据中的右表对应块满足同一块对应同一行组的条件情况下,所述目标关系包括右表而不包括左...

【专利技术属性】
技术研发人员:缪哲语吴迪阮羽彬乔智李猛梁宇坤
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1