处理数据库查询语句的方法、装置及原生分布式数据库制造方法及图纸

技术编号:33274621 阅读:27 留言:0更新日期:2022-04-30 23:32
本公开披露了一种处理数据库查询语句的方法、装置及一种原生分布式数据库,所述方法包括:接收第一数据库查询语句,所述第一数据库查询语句包括外部查询以及第一子查询,所述第一子查询的查询条件为所述外部查询的相关条件,且所述第一子查询具有使得所述第一子查询不能展开的目标子句;根据所述第一数据库查询语句生成第二数据库查询语句,所述第二数据库查询语句包括所述外部查询以及与所述第一子查询等价的第二子查询,所述第二子查询用于查询封装了所述目标子句的第一视图,且所述第二子查询的查询条件为所述相关条件;对所述第二子查询进行展开。二子查询进行展开。二子查询进行展开。

【技术实现步骤摘要】
处理数据库查询语句的方法、装置及原生分布式数据库


[0001]本公开涉及数据库领域,具体涉及一种处理数据库查询语句的方法、装置及一种原生分布式数据库。

技术介绍

[0002]由于相关子查询的执行依赖于外部查询,因此采用传统的嵌套循环的方式执行计算时,查询效率非常低。一种解决方法是数据库系统对相关子查询进行改写,提升成半连接,然后由优化器选择更高效的连接算法来计算相关子查询,从而提升相关子查询的查询效率。
[0003]但是,对于一些复杂的相关子查询来说,由于其包含某些特定子句而导致子查询不能展开,因此无法进行半连接的改写,只能按照传统的嵌套循环方式执行计算,查询性能非常低。尤其是当驱动表的数据量非常大的时候,查询执行时间往往不能满足用户需求。

技术实现思路

[0004]有鉴于此,本公开提供了一种处理数据库查询语句的方法、装置及一种原生分布式数据库,能够将一些复杂的、拥有特定子句的相关子查询改写成半连接,大大提高了相关子查询的执行性能。
[0005]第一方面,提供一种处理数据库查询语句的方法,包括:接收第一数据库查询本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种处理数据库查询语句的方法,包括:接收第一数据库查询语句,所述第一数据库查询语句包括外部查询以及第一子查询,所述第一子查询的查询条件为所述外部查询的相关条件,且所述第一子查询具有使得所述第一子查询不能展开的目标子句;根据所述第一数据库查询语句生成第二数据库查询语句,所述第二数据库查询语句包括所述外部查询以及与所述第一子查询等价的第二子查询,所述第二子查询用于查询封装了所述目标子句的第一视图,且所述第二子查询的查询条件为所述相关条件;对所述第二子查询进行展开。2.根据权利要求1所述的方法,所述根据所述第一数据库查询语句生成第二数据库查询语句,包括:根据所述第一数据库查询语句生成第三数据库查询语句,所述第三数据库查询语句包括所述外部查询以及与所述第一子查询等价的第三子查询,所述第三子查询用于查询封装了所述第一子查询语句的第二视图;将所述相关条件提取到所述第二视图的外部,得到所述第二子查询。3.根据权利要求1所述的方法,所述根据所述第一数据库查询语句生成第二数据库查询语句,包括:判断所述第一子查询是否为可展开的子查询;如果所述第一子查询为不可展开的子查询,则根据所述第一数据库查询语句生成所述第二数据库查询语句。4.根据权利要求1所述的方法,所述目标子句包括以下子句中的一个或多个:GROUP BY子句,HAVING子句,WINDOW FUNCTION子句。5.根据权利要求1所述的方法,所述对所述第二子查询进行子查询展开,包括:将所述第二子查询改写成半连接算法;根据所述半连接算法,执行所述第二数据库查询语句的计算。6.一种原生分布式数据库,包括:接收模块,用于接收第一数...

【专利技术属性】
技术研发人员:郑振国王国平
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1