【技术实现步骤摘要】
一种分库分表模式下逻辑SQL语句翻译方法和装置
本专利技术涉及数据库领域,尤其涉及一种分库分表模式下逻辑SQL语句翻译方法和装置。
技术介绍
对于通信行业大型应用系统、或大型互联网应用系统,数据库单表的记录数可能达到千万级甚至是亿级,并且数据库还面临着极高的并发访问压力。对于访问极为频繁且数据量巨大的单表来说,我们的解决方案首先就是分库分表,通过分库分表来减少单表的记录条数,提高数据查询时间、提高数据库的吞吐量。分库分表之前,我们需要选择适当的分库分表策略,使得数据能够较为均衡地分到多张表中,并且不影响正常的查询。目前常用的分库策略有:按业务分库、按地域分库,常用的分表策略有:按用户ID规则分表、按年月分表、按业务数据规则分表、其他基于复杂规则的分表。在这种分库分表模式下,SQL(结构化查询语言,StructuredQueryLanguage)语句的编写就变得极为繁琐和复杂,如按用户ID规则进行的分表,在编写查询用户信息的SQL语句就必须考虑该用户在那个分表中。现有的技术方案大体流程如下:(1)明确需要操作的数据存放在哪个分库中,需要人为根据分库规则进行判断。(2 ...
【技术保护点】
1.一种分库分表模式下逻辑SQL语句翻译方法,其特征在于,所述方法包括:接收并输出逻辑SQL语句;对所述输出的逻辑SQL语句进行语句分析,获取所述逻辑SQL语句的语法分析树;对所述语法分析树中表名与预设的分库分表策略进行匹配,获取所述语法分析树中表名的分库分表信息;基于所述分库分表信息,将所述逻辑SQL语句翻译为物理SQL语句。
【技术特征摘要】
1.一种分库分表模式下逻辑SQL语句翻译方法,其特征在于,所述方法包括:接收并输出逻辑SQL语句;对所述输出的逻辑SQL语句进行语句分析,获取所述逻辑SQL语句的语法分析树;对所述语法分析树中表名与预设的分库分表策略进行匹配,获取所述语法分析树中表名的分库分表信息;基于所述分库分表信息,将所述逻辑SQL语句翻译为物理SQL语句。2.如权利要求1所述的方法,其特征在于,所述对所述语法分析树中表名与预设的分库分表策略进行匹配,获取所述语法分析树中表名的分库分表信息,包括:判断所述语法分析树中的表名是否与预设分库策略相匹配,其中,所述预设的分库分表策略中包括所述预设分库策略和预设分表策略;在为是时,从所述预设分库策略中获取与所述语法分析树中的表名匹配的第一分库信息;从所述预设分表策略中获取与所述语法分析树中的表名匹配的第一分表信息。3.如权利要求2所述的方法,其特征在于,所述基于所述分库分表信息,将所述逻辑SQL语句翻译为物理SQL语句,包括:基于所述第一分库信息和所述第一分表信息,获取与所述语法分析树中表名对应的第一物理表名;利用所述第一物理表名替换所述逻辑SQL语句中的表名从而获取第一物理SQL语句。4.如权利要求3所述的方法,其特征在于,在所述判断所述语法分析树中表名是否与预设分库策略相匹配之后,所述方法还包括:若所述语法分析树中表名与所述预设分库策略不匹配,判断所述语法分析树中表名是否与预设分表策略相匹配;在为是时,从所述预设分表策略中获取与所述语法分析树中的表名匹配的第二分表信息。5.如权利要求4所述的方法,其特征在于,所述基于所述分库分表信息,将所述逻辑SQL语句翻译为物理SQL语句,包括:基于所述第二分表信息,获取与所述语法分析树中的表名对应的第二物理表名;利用所述第二物理表名替换所述逻辑SQL语句中的表名,从而获取第二物理SQL语句。6.如权利要求1-5任一项所述的方法,其特征在于,在所述接收并输出逻辑SQL语句之前,所述方法还包括:进行分库分表策略配置,从而存储所述预设的分库分表策略。7.如权利要求1-5任一项所述的方法,其特征在于,在所述基于所述分库分表信息,将所述逻辑SQL语句翻译为物理SQL语句之后,所述方法还包括:输出所述物理SQL语句和所述物理SQL语句的物理库信息和/或物理表信息。8.一种分库分表模式下逻辑SQL语句翻译装置,其特征在于,所述装置包括:接收模块,用于接收并输出的逻辑SQL语句;第一获取模块,用于对所述输出的逻辑SQL语句进行语句分析,获取所述逻辑SQL语句的语法分析树;第二获取模块,用于对所述语法分析树中...
【专利技术属性】
技术研发人员:龚家兵,
申请(专利权)人:中移苏州软件技术有限公司,中国移动通信集团公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。