[发明专利]数据库查询方法和装置在审
申请号: | 201610317616.0 | 申请日: | 2016-05-12 |
公开(公告)号: | CN107368493A | 公开(公告)日: | 2017-11-21 |
发明(设计)人: | 顾张磊 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司11204 | 代理人: | 王达佐,马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 方法 装置 | ||
1.一种数据库查询方法,其特征在于,所述方法包括:
接收数据查询请求,其中,所述数据查询请求包括用于连接查询的连接查询语句;
如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,则从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句;
通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;
基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据在同一个分库中,则通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,作为第一连接查询结果;
合并获取到的第一连接查询结果,作为所述数据查询请求对应的查询结果。
3.根据权利要求2所述的方法,其特征在于,所述通过所述连接查询语句从至少一个分库中的至少一个分表中获取查询结果,包括:
将所述连接查询语句在所述分库分表路由信息集合中匹配分库和分表;
通过所述连接查询语句从匹配到的各个分库中的匹配到的各个分表中获取查询结果。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述连接查询语句中拆分出至少一条用于单表查询的单表查询语句,包括:
针对所述连接查询语句所连接的每个表,从所述连接查询语句中拆分出所述表对应的单表查询语句。
5.根据权利要求4所述的方法,其特征在于,在通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果之前,所述方法还包括:
针对所述连接查询语句所连接的每个表,获取所述表中满足所述表对应的单表查询语句中的查询条件的记录数量,并将所述记录数量最小的表作为第一表,将所述连接查询语句中与所述第一表连接的表作为第二表;以及
所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包括:
通过所述第一表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果。
6.根据权利要求5所述的方法,其特征在于,所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:
合并获取到的单表查询结果,并将合并后的单表查询结果插入所述第二表所关联的各个分表所在的分库的临时表中;
在各个所述第二表所关联的各个分表所在的分库中,对分库中的所述第二表所关联的各个分表和所述临时表进行连接查询,得到第二连接查询结果;
将得到的所述第二连接查询结果合并,作为所述数据查询请求对应的查询结果。
7.根据权利要求4所述的方法,其特征在于,如果确定所述连接查询语句所连接的各个表中的连接条件字段值相同的数据不在同一个分库中,并且所述连接查询语句中的查询条件中包括所述连接查询语句所连接的每个表的用于分库分表的分库分表字段,则所述通过单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果,包 括:
针对所述连接查询语句所连接的每个表,通过所述表对应的单表查询语句从至少一个分库中的至少一个分表中获取单表查询结果;以及
所述基于获取到的单表查询结果,得到所述数据查询请求对应的查询结果,包括:
将针对所述连接查询语句所连接的各个表获取到的单表查询结果合并,作为所述数据查询请求对应的查询结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610317616.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据操作的方法和装置
- 下一篇:一种文献分析方法与系统