[发明专利]数据库查询方法和装置在审
申请号: | 201610317616.0 | 申请日: | 2016-05-12 |
公开(公告)号: | CN107368493A | 公开(公告)日: | 2017-11-21 |
发明(设计)人: | 顾张磊 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司11204 | 代理人: | 王达佐,马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,具体涉及数据库技术领域,尤其涉及数据库查询方法和装置。
背景技术
在数据库系统中,随着数据库服务器中的数据量的增加,以及数据库操作请求的增加,单台数据库服务器的资源通常会难以支撑大量的数据量以及大量的数据库操作请求。为了解决该问题,需要对数据库进行分库分表(sharding),把一个数据库切分成多个部分放到不同的数据库服务器上,从而有效解决亿万级数据的存储问题以及单台服务器资源的瓶颈问题。
然而,在进行分库分表之后,可能会存在原来单个数据库中与其它表有关联关系的表中的数据存在不同的数据库中的情况,使得多表连接查询在分库分表的数据库配置下较难进行。
发明内容
本申请的目的在于提出一种数据库查询方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种数据库查询方法,所述方法包括:接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
在一些实施例中,所述方法还包括:如果确定所述连接查询语句 所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
在一些实施例中,所述通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,包括:将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
在一些实施例中,所述从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,包括:针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
在一些实施例中,在通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,所述方法还包括:针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
在一些实施例中,所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果,将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
在一些实施例中,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段,则所述通过单表查询语句从至少一个分库中 的至少一个分表中获取单表查询结果,包括:针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610317616.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据操作的方法和装置
- 下一篇:一种文献分析方法与系统