CN107368493A - 数据库查询方法和装置 - Google Patents

数据库查询方法和装置 Download PDF

Info

Publication number
CN107368493A
CN107368493A CN201610317616.0A CN201610317616A CN107368493A CN 107368493 A CN107368493 A CN 107368493A CN 201610317616 A CN201610317616 A CN 201610317616A CN 107368493 A CN107368493 A CN 107368493A
Authority
CN
China
Prior art keywords
point
storehouse
connection inquiring
sentence
query result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610317616.0A
Other languages
English (en)
Inventor
顾张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610317616.0A priority Critical patent/CN107368493A/zh
Publication of CN107368493A publication Critical patent/CN107368493A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了数据库查询方法和装置。所述数据库查询方法的一具体实施方式包括:接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。该实施方式实现了在分库分表的数据库配置下进行多表连接查询。

Description

数据库查询方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及数据库技术领域,尤其涉及数据库查询方法和装置。
背景技术
在数据库系统中,随着数据库服务器中的数据量的增加,以及数据库操作请求的增加,单台数据库服务器的资源通常会难以支撑大量的数据量以及大量的数据库操作请求。为了解决该问题,需要对数据库进行分库分表(sharding),把一个数据库切分成多个部分放到不同的数据库服务器上,从而有效解决亿万级数据的存储问题以及单台服务器资源的瓶颈问题。
然而,在进行分库分表之后,可能会存在原来单个数据库中与其它表有关联关系的表中的数据存在不同的数据库中的情况,使得多表连接查询在分库分表的数据库配置下较难进行。
发明内容
本申请的目的在于提出一种数据库查询方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种数据库查询方法,所述方法包括:接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
在一些实施例中,所述方法还包括:如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
在一些实施例中,所述通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,包括:将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
在一些实施例中,所述从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,包括:针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
在一些实施例中,在通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,所述方法还包括:针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
在一些实施例中,所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果,将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
在一些实施例中,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段,则所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
在一些实施例中,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中仅包括所述连接查询语句所连接的部分表的分库分表字段,则所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:将分库分表字段在所述连接查询语句中的查询条件中的表作为第三表,通过所述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果;以及所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:根据所述第三表的单表查询结果,更新第四表对应的单表查询语句,其中,所述第四表为所述连接查询语句中与所述第三表连接的表;通过更新后的所述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果;通过所述连接查询语句中的连接条件字段,连接所述第三表的单表查询结果和所述第四表的单表查询结果,作为所述数据查询请求对应的查询结果。
第二方面,本申请提供了一种数据库查询装置,所述装置包括:接收单元,用于接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;拆分单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;单表查询单元,用于通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;获取单元,用于基于所述查询单元获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
在一些实施例中,所述装置还包括:连接查询单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中时,通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;合并单元,用于合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
在一些实施例中,所述连接查询单元包括:路由匹配子单元,用于将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;第一连接查询子单元,用于通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
在一些实施例中,所述拆分单元包括:拆分子单元,用于针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
在一些实施例中,所述装置还包括:记录数量获取单元,用于在所述单表查询单元通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及所述单表查询单元包括:第一单表查询子单元,用于通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
在一些实施例中,所述获取单元包括:临时表插入子单元,用于合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;第二连接查询子单元,用于在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果;第一合并子单元,用于将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
在一些实施例中,所述单表查询单元包括:第二单表查询子单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段时,针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及所述获取单元包括:第二合并子单元,用于将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
在一些实施例中,所述单表查询单元包括:第三单表查询子单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中仅包括所述连接查询语句所连接的部分表的分库分表字段时,将分库分表字段在所述连接查询语句中的查询条件中的表作为第三表,通过所述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果;以及所述获取单元包括:更新子单元,用于根据所述第三表的单表查询结果,更新第四表对应的单表查询语句,其中,所述第四表为所述连接查询语句中与所述第三表连接的表;第四单表查询子单元,用于通过更新后的所述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果;连接子单元,用于通过所述连接查询语句中的连接条件字段,连接所述第三表的单表查询结果和所述第四表的单表查询结果,作为所述数据查询请求对应的查询结果。
本申请提供的数据库查询方法和装置,通过在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,并通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,然后基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,实现了在分库分表的数据库配置下进行多表连接查询。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的数据库查询方法的一个实施例的流程图;
图3是根据本申请的数据库查询方法的另一个实施例的流程图;
图4是根据本申请的数据库查询装置的一个实施例的流程图;
图5是适于用来实现本申请实施例的查询服务器或应用服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的数据库查询方法或数据库查询装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,应用服务器104,查询服务器105和数据库服务器106、107、108。
用户可以使用终端设备101、102、103通过网络与应用服务器104交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如浏览器应用、金融类应用、搜索类应用、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是支持信息通信的各种电子设备,包括但不限于智能手机、平板电脑、便携计算机和台式计算机等等。
应用服务器104可以是提供各种服务的服务器,例如对终端设备101、102、103上的浏览器应用、金融类应用等提供支持的应用服务器。应用服务器104可以对接收到的查询请求进行处理,得到查询语句,并根据查询语句生成数据查询请求发送给查询服务器105。
查询服务器105可以对接收到的查询请求进行分析,并根据分析结果从数据库服务器106、107、108中的一个或多个获取查询结果,并将查询结果反馈给应用服务器104。
数据库服务器106、107、108可以是进行分库分表后的各个分库的数据库服务器,数据库服务器106、107、108可以根据接收到的数据库操作请求,对数据库进行查询、插入、修改、删除等操作。
需要说明的是,本申请实施例所提供的数据库查询方法可以由查询服务器105执行,或者也可以由应用服务器104执行。相应地,数据库查询装置可以设置于查询服务器105中,也可以设置于应用服务器104中。
此外,还需要说明的是,如果数据库查询方法由应用服务器104执行,查询服务器105不是必要的,此时应用服务器104也可以直接与数据库服务器106、107、108进行交互。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,图2示出了根据本申请的数据库查询方法的一个实施例的流程200。
如图2所示,本实施例的数据库查询方法包括以下步骤:
步骤201,接收数据查询请求。
其中,上述数据查询请求包括用于连接查询的连接查询语句。
在本实施例中,数据库查询方法运行于其上的电子设备(例如图1所示的应用服务器或查询服务器)可以从远程或本地接收上述数据查询请求。其中,连接查询是关系数据库中主要的查询,通过连接运算符(例如JOIN)可以实现多个表查询。用于连接查询的连接查询语句可以是应用服务器(例如图1所示的应用服务器)根据从终端(例如图1所示的终端设备)接收到的请求生成的。连接查询语句可以是SQL(Structured Query Language,结构化查询语言)语句、HQL(Hibernate Query Language)语句或者其它查询语言语句。
步骤202,如果确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从上述连接查询语句中拆分出至少一条用于单表查询的单表查询语句。
在本实施例中,电子设备可以通过如下方法来确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据是否在同一个分库中:如果上述连接查询语句中的连接条件字段与上述连接查询语句所连接的表的用于分库分表的分库分表字段相同,并且上述连接查询语句所连接的表在预存的分库分表路由信息集合中匹配到的路由规则相同,则确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,否则确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中。其中,连接条件字段为用于连接表的字段,例如,假设连接查询语句为:SELECT*FROM A JOIN B ON A.a1=B.b1,则a1、b1即为连接条件字段,其中,A、B为该连接查询语句所连接的表,a1为表A中的字段,b1为表B中的字段。分库分表字段为表的分库分表的规则所用的字段,例如,假设表C的分库分表的规则是用户ID mod 4的方式,其中,用户ID是表C的一个字段,mod为取模运算,即对表C进行分库分表时根据用户ID与4的余数来确定数据存入哪个分表,此处用户ID即为表C的分库分表字段。分库分表路由信息集合中的分库分表路由信息包括:表名、表的路由规则,其中,路由规则可以用规则标识表示,可以包括分库分表字段、分库规则和分表规则,电子设备可以根据上述连接查询语句所连接的表所匹配到的规则标识是否一致来确定路由规则是否相同。
如果确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则电子设备可以将连接查询语句的各个子句(例如SELECT子句、FROM子句、WHERE子句等)中与要拆分的表相关的部分提取出来,然后将提取出的子句整合成单表查询语句。以SQL语句为例,假设连接查询语句为:SELECTA.a1,A.a2,B.b1,B.b2FROM A JOIN B ON A.a1=B.b1WHERE A.a2=”,其中,a1、a2为表A中的字段,b1、b2为表B中的字段,如果要拆分出用于查询表A的单表查询语句,则拆分出的单表查询语句为:SELECT A.a1,A.a2FROM A WHERE A.a2=”。
步骤203,通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
在本实施例中,电子设备可以将单表查询语句在上述分库分表路由信息集合中匹配分库和分表,并从匹配到的各个分库中的匹配到的各个分表中获取单表查询语句的单表查询结果。其中,将单表查询语句在上述分库分表路由信息集合中匹配分库和分表的处理具体可以为:将单表查询语句中的表名在上述分库分表路由信息集合中匹配路由规则;然后将单表查询语句中的查询条件中的字段和字段值与该路由规则进行匹配,得到至少一个分库和至少一个分表;如果没有匹配到,则将该表所关联的所有分表及其所在的分库作为匹配到的至少一个分库和至少一个分表。
步骤204,基于获取到的单表查询结果,得到上述数据查询请求对应的查询结果。
在本实施例中,电子设备可以通过各种方法基于获取到的单表查询结果,得到上述数据查询请求对应的查询结果。例如,将从各个分库获取到的一个单表的上述单表查询结果合并,并将合并后的单表查询结果插入上述连接查询语句中与该单表连接的其它表所关联的各个分表所在的分库的临时表中;然后在各个上述其它表所关联的各个分表所在的分库中,对分库中的上述其它表所关联的各个分表和上述临时表进行连接查询,得到查询结果;再将在各个上述其它表所关联的各个分表所在的分库中得到的查询结果合并,作为上述数据查询请求对应的查询结果。之后,电子设备可以发送该数据查询请求对应的查询结果到数据查询请求发送端(例如图1所示的应用服务器或终端设备)。
在本实施例的一些可选的实现方式中,本实施例的数据库查询方法还可以包括:如果确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则通过上述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;合并获取到的第一连接查询结果,作为上述数据查询请求对应的查询结果。其中,如果确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则说明直接通过上述连接查询语句在所关联的各个分库中获取的查询结果是完整的,不会因各个表的数据的错位而导致查询结果的缺失。
其中,上述通过上述连接查询语句从至少一个分库中的至少一个分表中获取查询结果的处理可以包括:将上述连接查询语句在上述分库分表路由信息集合中匹配分库和分表;通过上述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。其中,匹配分库和分表的具体处理可参考上述步骤203中的相关说明,在此不再赘述。
通过该实现方式,可以使电子设备在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中时,不对连接查询语句进行拆分,直接使用连接查询语句进行查询,从而提高了此种情况下的查询效率。
在本实施例的一些可选的实现方式中,步骤202中的从上述连接查询语句中拆分出至少一条用于单表查询的单表查询语句的处理可以包括:针对上述连接查询语句所连接的每个表,从上述连接查询语句中拆分出上述表对应的单表查询语句。其中,具体的拆分单表查询语句的处理可参考上述步骤202中的相关说明,在此不再赘述。
基于上一实现方式,在本实施例的一些可选的实现方式中,在步骤203之前,本实施例的数据库查询方法还可以包括:针对上述连接查询语句所连接的每个表,获取该表中满足该表对应的单表查询语句中的查询条件的记录数量,并将上述记录数量最小的表作为第一表,将上述连接查询语句中与上述第一表连接的表作为第二表。以及,步骤203可以包括:通过上述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。其中,以SQL语句为例,电子设备可以通过COUNT()函数来获取该表中满足该表对应的单表查询语句中的查询条件的记录数量。本实现方式通过获取上述记录数量最小的表中的单表查询结果,降低了后续处理过程中需处理的数据量,提高了查询效率。
基于上一实现方式,在本实施例的一些可选的实现方式中,步骤204可以包括:合并获取到的单表查询结果,并将合并后的单表查询结果插入上述第二表所关联的各个分表所在的分库的临时表中;在各个上述第二表所关联的各个分表所在的分库中,对分库中的上述第二表所关联的各个分表和上述临时表进行连接查询,得到第二连接查询结果;将得到的上述第二连接查询结果合并,作为上述数据查询请求对应的查询结果。从而实现了了在分库分表的数据库配置下进行多表连接查询。
本实施例提供的数据库查询方法,通过在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从上述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,并通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,然后基于获取到的单表查询结果,得到上述数据查询请求对应的查询结果,实现了在分库分表的数据库配置下进行多表连接查询。
进一步参考图3,图3示出了根据本申请的数据库查询方法的另一个实施例的流程300。
如图3所示,本实施例的数据库查询方法包括以下步骤:
步骤301,接收数据查询请求。
其中,上述数据查询请求包括用于连接查询的连接查询语句。
在本实施例中,步骤301的具体处理可参考图2对应实施例中步骤201的相关说明,在此不再赘述。
步骤302,如果确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则针对上述连接查询语句所连接的每个表,从上述连接查询语句中拆分出上述表对应的单表查询语句。
在本实施例中,步骤302的具体处理可参考图2对应实施例中步骤202的可选实现方式的相关说明,在此不再赘述。
步骤303,如果上述连接查询语句中的查询条件中仅包括上述连接查询语句所连接的部分表的分库分表字段,则将分库分表字段在上述连接查询语句中的查询条件中的表作为第三表,通过上述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果。
在本实施例中,电子设备可以首先从上述连接查询语句中提取查询条件,然后确定该查询条件中是否包括上述连接查询语句所连接的部分表的分库分表字段,且不包括上述连接查询语句所连接的每个表的分库分表字段,如果是,则将分库分表字段在上述连接查询语句中的查询条件中的表作为第三表,此时第三表的分库分表字段的值是确定的,因此第三表对应的单表查询语句可以匹配到确定的分库和分表,而不是第三表所关联的全部分表,因此,此时可以通过上述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果,从而使步骤303可以不用查询单表所关联的所有分表,提高了查询效率。其中,通过上述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果的具体处理可参考图2对应实施例中步骤203的相关说明,在此不再赘述。
步骤304,根据上述第三表的单表查询结果,更新第四表对应的单表查询语句。
其中,上述第四表为上述连接查询语句中与上述第三表连接的表。
在本实施例中,电子设备可以从上述第三表的单表查询结果中获取上述第四表的分库分表字段的值;将上述第四表的分库分表字段等于上述第四表的分库分表字段的值的条件加入上述第四表对应的单表查询语句单表查询语句的查询条件中,从而确定了第四表的分库分表字段的值。
需要说明的是,拆分第四表对应的单表查询语句也可以在步骤303以后、步骤304之前进行,在步骤302,也可以只拆分第三表对应的单表查询语句。本实施例不对拆分第四表对应的单表查询语句的处理时机做具体限定。
步骤305,通过更新后的上述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果。
在本实施例中,步骤305的具体处理可参考图2对应实施例中步骤203的相关说明,在此不再赘述。
步骤306,通过上述连接查询语句中的连接条件字段,连接上述第三表的单表查询结果和上述第四表的单表查询结果,作为上述数据查询请求对应的查询结果。
在本实施例中,电子设备可以通过用户连接多表的操作符(例如SQL中的JOIN)来连接上述第三表的单表查询结果和上述第四表的单表查询结果。
在本实施例的一些可选的实现方式中,在步骤303,如果确定上述连接查询语句中的查询条件中包括上述连接查询语句所连接的每个表的用于分库分表的分库分表字段,则电子设备可以针对上述连接查询语句所连接的每个表,通过上述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;将针对上述连接查询语句所连接的各个表获取到的单表查询结果合并,作为上述数据查询请求对应的查询结果。其中,如果连接查询语句中的查询条件中包括上述连接查询语句所连接的每个表的分库分表字段,则说明连接查询语句所连接的每个表的分库分表字段的值是确定的,因此每个表对应的单表查询语句可以匹配到确定的分库和分表,而不是全部分表,因此,在本实现方式的203中不会因匹配不到确定的分库和分表而从所有所关联的分表获取查询结果,从而可以在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且上述连接查询语句中的查询条件中包括上述连接查询语句所连接的每个表的用于分库分表的分库分表字段时,采取本实现方式的处理来提高使查询效率。
从图3中可以看出,与图2对应的实施例相比,本实施例中的数据库查询方法的流程300突出了对特殊情况进行特殊处理的步骤。由此,本实施例描述的方案可以通过分支优化,减少中间数据的网络传输,提高了查询效率。
下面参考图4,作为对上述各图所示方法的实现,本申请提供了一种数据库查询装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于应用服务器或查询服务器中。
如图4所示,本实施例提供的数据库查询装置400包括:接收单元401、拆分单元402、单表查询单元403以及获取单元404。其中,接收单元401用于接收数据查询请求,其中,上述数据查询请求包括用于连接查询的连接查询语句;拆分单元402用于在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从上述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;单表查询单元403用于通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;获取单元404用于基于上述查询单元获取到的单表查询结果,得到上述数据查询请求对应的查询结果。
在本实施例中,接收单元401、拆分单元402、单表查询单元403以及获取单元404的具体处理可参考图2对应实施例中步骤201、步骤202、步骤203以及步骤204的相关描述,在此不再赘述。
在本实施例的一些可选的实现方式中,本实施例的数据库查询装置400还可以包括:连接查询单元405,用于在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中时,通过上述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;合并单元406,用于合并获取到的第一连接查询结果,作为上述数据查询请求对应的查询结果。
其中,连接查询单元405可以包括:路由匹配子单元(图中未示出),用于将上述连接查询语句在上述分库分表路由信息集合中匹配分库和分表;第一连接查询子单元(图中未示出),用于通过上述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。该实现方式的具体处理及其所带来的技术效果可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,拆分单元402可以包括:拆分子单元(图中未示出),用于针对上述连接查询语句所连接的每个表,从上述连接查询语句中拆分出上述表对应的单表查询语句。其中,拆分子单元的具体拆分单表查询语句的处理可参考上述步骤202中的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,本实施例的数据库查询装置400还可以包括:记录数量获取单元407,用于在单表查询单元403通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,针对上述连接查询语句所连接的每个表,获取上述表中满足上述表对应的单表查询语句中的查询条件的记录数量,并将上述记录数量最小的表作为第一表,将上述连接查询语句中与上述第一表连接的表作为第二表。以及,单表查询单元403可以包括:第一单表查询子单元(图中未示出),用于通过上述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。该实现方式的具体处理及其所带来的技术效果可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,获取单元404可以包括:临时表插入子单元4041,用于合并获取到的单表查询结果,并将合并后的单表查询结果插入上述第二表所关联的各个分表所在的分库的临时表中;第二连接查询子单元4042,用于在各个上述第二表所关联的各个分表所在的分库中,对分库中的上述第二表所关联的各个分表和上述临时表进行连接查询,得到第二连接查询结果;第一合并子单元4043,用于将得到的上述第二连接查询结果合并,作为上述数据查询请求对应的查询结果。临时表插入子单元4041、第二连接查询子单元4042的具体处理可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,单表查询单元403可以包括:第二单表查询子单元(图中未示出),用于在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且上述连接查询语句中的查询条件中包括上述连接查询语句所连接的每个表的用于分库分表的分库分表字段时,针对上述连接查询语句所连接的每个表,通过上述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。以及。获取单元404可以包括:第二合并子单元(图中未示出),用于将针对上述连接查询语句所连接的各个表获取到的单表查询结果合并,作为上述数据查询请求对应的查询结果。第二单表查询子单元和第二合并子单元的具体处理及其所带来的技术效果可参考图3对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述单表查询单元403可以包括:第三单表查询子单元(图中未示出),用于在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且上述连接查询语句中的查询条件中仅包括上述连接查询语句所连接的部分表的分库分表字段时,将分库分表字段在上述连接查询语句中的查询条件中的表作为第三表,通过上述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果。以及,获取单元404包括:更新子单元(图中未示出),用于根据上述第三表的单表查询结果,更新第四表对应的单表查询语句,其中,上述第四表为上述连接查询语句中与上述第三表连接的表;第四单表查询子单元(图中未示出),用于通过更新后的上述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果;连接子单元(图中未示出),用于通过上述连接查询语句中的连接条件字段,连接上述第三表的单表查询结果和上述第四表的单表查询结果,作为上述数据查询请求对应的查询结果。第三单表查询子单元、更新子单元、第四单表查询子单元以及连接子单元的具体处理可分别参考图3对应实施例中步骤303、步骤304、步骤305、步骤306的相关说明,在此不再赘述。
本实施例提供的数据库查询装置,通过拆分单元402在确定上述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从上述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,并通过单表查询单元403通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,然后通过获取单元404基于获取到的单表查询结果,得到上述数据查询请求对应的查询结果,实现了在分库分表的数据库配置下进行多表连接查询。
下面参考图5,其示出了适于用来实现本申请实施例的应用服务器或查询服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分506加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括硬盘等的存储部分506;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分507。通信部分507经由诸如因特网的网络执行通信处理。驱动器508也根据需要连接至I/O接口505。可拆卸介质509,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器508上,以便于从其上读出的计算机程序根据需要被安装入存储部分506。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分507从网络上被下载和安装,和/或从可拆卸介质509被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、拆分单元、单表查询单元以及获取单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收数据查询请求的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (16)

1.一种数据库查询方法,其特征在于,所述方法包括:
接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;
如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;
通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;
基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;
合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
3.根据权利要求2所述的方法,其特征在于,所述通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,包括:
将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;
通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,包括:
针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
5.根据权利要求4所述的方法,其特征在于,在通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,所述方法还包括:
针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及
所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:
通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
6.根据权利要求5所述的方法,其特征在于,所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:
合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;
在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果;
将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
7.根据权利要求4所述的方法,其特征在于,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段,则所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:
针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及
所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:
将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
8.根据权利要求4所述的方法,其特征在于,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中仅包括所述连接查询语句所连接的部分表的分库分表字段,则所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:
将分库分表字段在所述连接查询语句中的查询条件中的表作为第三表,通过所述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果;以及
所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:
根据所述第三表的单表查询结果,更新第四表对应的单表查询语句,其中,所述第四表为所述连接查询语句中与所述第三表连接的表;
通过更新后的所述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果;
通过所述连接查询语句中的连接条件字段,连接所述第三表的单表查询结果和所述第四表的单表查询结果,作为所述数据查询请求对应的查询结果。
9.一种数据库查询装置,其特征在于,所述装置包括:
接收单元,用于接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;
拆分单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中时,从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;
单表查询单元,用于通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;
获取单元,用于基于所述查询单元获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
连接查询单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中时,通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;
合并单元,用于合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
11.根据权利要求10所述的装置,其特征在于,所述连接查询单元包括:
路由匹配子单元,用于将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;
第一连接查询子单元,用于通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述拆分单元包括:
拆分子单元,用于针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:记录数量获取单元,用于在所述单表查询单元通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及
所述单表查询单元包括:
第一单表查询子单元,用于通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
14.根据权利要求13所述的装置,其特征在于,所述获取单元包括:
临时表插入子单元,用于合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;
第二连接查询子单元,用于在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果;
第一合并子单元,用于将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
15.根据权利要求12所述的装置,其特征在于,所述单表查询单元包括:
第二单表查询子单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段时,针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及
所述获取单元包括:
第二合并子单元,用于将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
16.根据权利要求12所述的装置,其特征在于,所述单表查询单元包括:第三单表查询子单元,用于在确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中仅包括所述连接查询语句所连接的部分表的分库分表字段时,将分库分表字段在所述连接查询语句中的查询条件中的表作为第三表,通过所述第三表对应的单表查询语句从至少一个分库中的至少一个分表中获取第三表的单表查询结果;以及
所述获取单元包括:
更新子单元,用于根据所述第三表的单表查询结果,更新第四表对应的单表查询语句,其中,所述第四表为所述连接查询语句中与所述第三表连接的表;
第四单表查询子单元,用于通过更新后的所述第四表对应的单表查询语句,从至少一个分库中的至少一个分表中获取第四表的单表查询结果;
连接子单元,用于通过所述连接查询语句中的连接条件字段,连接所述第三表的单表查询结果和所述第四表的单表查询结果,作为所述数据查询请求对应的查询结果。
CN201610317616.0A 2016-05-12 2016-05-12 数据库查询方法和装置 Pending CN107368493A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610317616.0A CN107368493A (zh) 2016-05-12 2016-05-12 数据库查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610317616.0A CN107368493A (zh) 2016-05-12 2016-05-12 数据库查询方法和装置

Publications (1)

Publication Number Publication Date
CN107368493A true CN107368493A (zh) 2017-11-21

Family

ID=60304143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610317616.0A Pending CN107368493A (zh) 2016-05-12 2016-05-12 数据库查询方法和装置

Country Status (1)

Country Link
CN (1) CN107368493A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063177A (zh) * 2018-08-22 2018-12-21 中兴飞流信息科技有限公司 一种信息查询方法、相关装置及可读存储介质
CN109710611A (zh) * 2018-12-25 2019-05-03 北京三快在线科技有限公司 存储表数据的方法、查询表数据的方法、装置及存储介质
CN109739876A (zh) * 2019-01-10 2019-05-10 中化石化销售有限公司 基于Sqltoy-orm框架的数据库的数据查询方法和装置
CN109783543A (zh) * 2019-01-14 2019-05-21 广州虎牙信息科技有限公司 数据查询方法、装置、设备和存储介质
CN110737676A (zh) * 2018-07-18 2020-01-31 北京京东金融科技控股有限公司 数据查询方法和装置
CN111090666A (zh) * 2019-11-29 2020-05-01 江苏苏宁物流有限公司 一种数据处理方法、装置、系统及计算机可读存储介质
CN111597214A (zh) * 2019-02-21 2020-08-28 北京京东尚科信息技术有限公司 用于数据查询的方法、装置、计算机系统及介质
CN111625561A (zh) * 2019-02-28 2020-09-04 华为技术有限公司 一种数据查询方法及装置
WO2020177376A1 (zh) * 2019-03-07 2020-09-10 平安科技(深圳)有限公司 数据的提取方法、装置、终端及计算机可读存储介质
CN112052255A (zh) * 2020-09-02 2020-12-08 福建天晴在线互动科技有限公司 一种自上而下拆分多表慢查询的sql解释方法及其装置
CN112131253A (zh) * 2019-06-25 2020-12-25 北京沃东天骏信息技术有限公司 数据查询方法、装置、设备和存储介质
CN112699143A (zh) * 2019-10-23 2021-04-23 拉扎斯网络科技(上海)有限公司 查询方法、装置、电子设备及存储介质
CN113297198A (zh) * 2020-06-10 2021-08-24 阿里巴巴集团控股有限公司 数据库索引优化方法、分布式数据库查询方法及装置
CN114265874A (zh) * 2022-03-02 2022-04-01 北京奥星贝斯科技有限公司 查询数据的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
US20140156635A1 (en) * 2012-12-04 2014-06-05 International Business Machines Corporation Optimizing an order of execution of multiple join operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
US20140156635A1 (en) * 2012-12-04 2014-06-05 International Business Machines Corporation Optimizing an order of execution of multiple join operations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨飞: ""分布式数据库中间件 DBScale 的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737676A (zh) * 2018-07-18 2020-01-31 北京京东金融科技控股有限公司 数据查询方法和装置
CN109063177A (zh) * 2018-08-22 2018-12-21 中兴飞流信息科技有限公司 一种信息查询方法、相关装置及可读存储介质
CN109710611B (zh) * 2018-12-25 2019-09-17 北京三快在线科技有限公司 存储表数据的方法、查询表数据的方法、装置及存储介质
CN109710611A (zh) * 2018-12-25 2019-05-03 北京三快在线科技有限公司 存储表数据的方法、查询表数据的方法、装置及存储介质
CN109739876B (zh) * 2019-01-10 2021-01-12 中化石化销售有限公司 基于Sqltoy-orm框架的数据库的数据查询方法和装置
CN109739876A (zh) * 2019-01-10 2019-05-10 中化石化销售有限公司 基于Sqltoy-orm框架的数据库的数据查询方法和装置
CN109783543A (zh) * 2019-01-14 2019-05-21 广州虎牙信息科技有限公司 数据查询方法、装置、设备和存储介质
CN111597214A (zh) * 2019-02-21 2020-08-28 北京京东尚科信息技术有限公司 用于数据查询的方法、装置、计算机系统及介质
CN111625561A (zh) * 2019-02-28 2020-09-04 华为技术有限公司 一种数据查询方法及装置
WO2020177376A1 (zh) * 2019-03-07 2020-09-10 平安科技(深圳)有限公司 数据的提取方法、装置、终端及计算机可读存储介质
CN112131253A (zh) * 2019-06-25 2020-12-25 北京沃东天骏信息技术有限公司 数据查询方法、装置、设备和存储介质
CN112699143A (zh) * 2019-10-23 2021-04-23 拉扎斯网络科技(上海)有限公司 查询方法、装置、电子设备及存储介质
CN112699143B (zh) * 2019-10-23 2022-09-13 拉扎斯网络科技(上海)有限公司 查询方法、装置、电子设备及存储介质
CN111090666A (zh) * 2019-11-29 2020-05-01 江苏苏宁物流有限公司 一种数据处理方法、装置、系统及计算机可读存储介质
CN113297198A (zh) * 2020-06-10 2021-08-24 阿里巴巴集团控股有限公司 数据库索引优化方法、分布式数据库查询方法及装置
CN112052255A (zh) * 2020-09-02 2020-12-08 福建天晴在线互动科技有限公司 一种自上而下拆分多表慢查询的sql解释方法及其装置
CN114265874A (zh) * 2022-03-02 2022-04-01 北京奥星贝斯科技有限公司 查询数据的方法和装置
CN114265874B (zh) * 2022-03-02 2022-05-03 北京奥星贝斯科技有限公司 查询数据的方法和装置

Similar Documents

Publication Publication Date Title
CN107368493A (zh) 数据库查询方法和装置
JP5869662B2 (ja) ユーザブックマークデータを管理するためのシステム、方法およびコンピュータプログラム
CN102314654B (zh) 一种信息推送方法及信息推送服务器
CN107506383B (zh) 一种审计数据处理方法和计算机设备
CN109413127A (zh) 一种数据同步方法和装置
CN106407361A (zh) 基于人工智能的推送信息的方法和装置
CN106844372A (zh) 一种物流信息查询方法和装置
CN109840120B (zh) 解耦微服务发布方法、电子装置及计算机可读存储介质
CN107169077A (zh) 用于推送信息的方法和装置
CN107844488A (zh) 数据查询方法和装置
CN107871221A (zh) 用于获取可销售库存数量的方法和装置
CN109753504A (zh) 数据查询方法及装置
CN110019242A (zh) 用于数据表的处理方法、装置和系统
US20210019806A1 (en) Search-query redirection
CN107784563A (zh) 知识产权求购方法及求购系统
CN109947759A (zh) 一种数据索引建立方法、索引检索方法及装置
US20160357811A1 (en) Webpage content search
CN104363237B (zh) 一种互联网媒体资源元数据的处理方法及其系统
US20140095527A1 (en) Expanding high level queries
CN110110184A (zh) 信息查询方法、系统、计算机系统及存储介质
KR20140031429A (ko) 아이템 추천 시스템과 방법 및 이를 지원하는 장치
CN105701231B (zh) 网络资源搜索系统及方法
JP2000057090A (ja) 他者グループ嗜好情報を利用した情報提供方法及び情報提供装置、並びに、情報提供プログラムを記録した記録媒体
CN104636384B (zh) 一种处理文档的方法及装置
CN109614603A (zh) 用于生成信息的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191127

Address after: 201210 room j1328, floor 3, building 8, No. 55, Huiyuan Road, Jiading District, Shanghai

Applicant after: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer three

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171121

Assignee: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Assignor: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2020990000202

Denomination of invention: Database inquiry method and device and database system

License type: Exclusive License

Record date: 20200420

EE01 Entry into force of recordation of patent licensing contract