[发明专利]一种应用无感知的分片数据库解析及优化方法有效
申请号: | 201910712071.7 | 申请日: | 2019-08-02 |
公开(公告)号: | CN110413642B | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 骆彬 | 申请(专利权)人: | 北京快立方科技有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2458;G06F16/25 |
代理公司: | 北京高文律师事务所 11359 | 代理人: | 徐江华;李宝玉 |
地址: | 100088 北京市海淀区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 感知 分片 数据库 解析 优化 方法 | ||
本发明提供一种应用无感知的分片数据库解析及优化方法,包括下列步骤:S1:应用程序在执行分片数据库的查询操作时,通过客户端分片驱动器将语句发给查询分析器及优化器;S2:查询分析器和优化器对查询语句进行语法检查和分析,根据查询内容或者查询条件中是否包含集中处理关键字,进而判断本次查询是一个分布式查询还是集中式查询;S3:查询分析器和优化器会根据查询条件并结合分片管理器中保存的数据分片信息解析出本次查询需要在分片数据库的哪些数据分片上执行;S4:查询分析器及优化器通知分片驱动器本次查询的查询方式;S5:分片驱动器通过分布式查询执行器或者集中式查询执行器对分片数据库进行操作,然后将查询结果返回给客户端。
技术领域
本发明涉及一种分片数据库的处理方法,尤其是涉及一种应用无感知的分片数据库解析及优化方法。
背景技术
随着数据量的增大,关系型数据库的单个库表数据会变得十分庞大,随着数据量的增加,一方面会导致对数据的访问性能降低,另一方面数据集中在一个库表里也会带来并发支持的问题。分片数据库通过对库表里的数据按照主键的散列值或者范围值进行分片,可以将一个库表的数据分片到多个数据库的多张分片表里存储来解决以上问题。但分片数据库带来另外一个问题,就是原来对一张表的访问操作现在变成了对多个数据库多张表的访问操作,数据库的ACID特性需要新的机制来进行保证。传统的做法有两种:一种是由客户端应用程序自己保证;另一种是引入中间件,由中间件来保证。但这两种技术的弊端也很明显:
客户端保证技术:这种技术的优点是应用程序直接和分片数据库进行交互,效率高,但应用程序和分片数据库耦合的十分紧,分片规则的每一次变化都要客户端应用程序作相应的开发,而对一些复杂的操作查询比如聚合类(SUM,AVG)以及order by子句等还需要客户端将每个分片数据库的数据库取回后自己做二次运算。此种方法只适合环境固化,对数据库操作简单单调的场景,已经较少使用;
中间件技术:这种技术客户端需要做的改动较少,通用性比较好,但也有两个缺点:首先,对数据库的访问功能受制于中间件自身的功能,各种中间件技术本身实现的功能差别较大,特别的中间件自身的数据库功能很弱,对一些需要二次处理的操作如对各种跨表的组合查询,子查询,聚合函数(如SUM,AVG)等支持不够优化,有些甚至不支持;其次,对分片数据库的操作每次都需要经过中间件进行,一方面影响了效率,另一方面中间件本身容易称为瓶颈。
发明内容
本发明提供了一种应用无感知的分片数据库解析及优化方法,用于解决分片数据库访问存在的上述问题,本发明从分片数据库自身机制入手,重新设计分片数据库的语句解析及优化机制,即不需要应用程序做改动,又不需要中间件参与,使分片数据库不再是多个传统数据库的组合,而是一套具有自我管理,协调优化,提供完整查询功能的整套独立数据库。它简化了用户开发,又不依赖于第三方系统,同时还提高了数据库的访问效率。
其技术方案如下所述:
一种应用无感知的分片数据库解析及优化方法,包括下列步骤:
S1:应用程序在执行分片数据库的查询操作时,通过客户端分片驱动器将语句发给查询分析器及优化器;
S2:查询分析器和优化器对查询语句进行语法检查和分析,根据查询内容或者查询条件中是否包含集中处理关键字,进而判断本次查询是一个分布式查询还是集中式查询;
S3:查询分析器和优化器会根据查询条件并结合分片管理器中保存的数据分片信息解析出本次查询需要在分片数据库的哪些数据分片上执行;
S4:查询分析器及优化器通知分片驱动器本次查询的查询方式;
S5:分片驱动器通过分布式查询执行器或者集中式查询执行器对分片数据库进行操作,然后将查询结果返回给客户端。
进一步的,步骤S5中,集中式查询执行器在每个相关分片数据库上获取初次执行结果并集中存放在临时数据库进行二次加工处理,将二次加工后处理的结果作为最终结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京快立方科技有限公司,未经北京快立方科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910712071.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据库卡顿处理方法与装置
- 下一篇:数据查询方法和装置