一种基于ShardingSphere-JDBC进行数据优化的解决方法技术

技术编号:32831612 阅读:9 留言:0更新日期:2022-03-26 20:45
本发明专利技术公开了一种基于ShardingSphere

【技术实现步骤摘要】
一种基于ShardingSphere

JDBC进行数据优化的解决方法


[0001]本专利技术涉及计算机软件
,具体为一种基于ShardingSphere

JDBC进行数据优化的解决方法。

技术介绍

[0002]随着单库单表中的数据量越来越大、数据库的查询QPS越来越高,一般采用分库分表的方法来应对出现的问题,在上线分库分表时,通常会对数据进行冗余处理操作保证数据正常,本方案是为了解决此操作带来的数据冗余问题。

技术实现思路

[0003]本专利技术的目的在于提供一种基于ShardingSphere

JDBC进行数据优化的解决方法,以解决上述
技术介绍
中提出的问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:一种基于ShardingSphere

JDBC进行数据优化的解决方法,包括以下步骤:启动程序之前,先对sharding

jdbc分库分表规则进行配置,需配置:spring.shardingsphere.datasource参数;spring.shardingsphere.sharding.tables参数;spring.shardingsphere.sharding.binding

tables参数;配置完分库分表规则后再配置目标库目标表参数,如下primaryKey,shardingColumn,table,limit;启动服务后,服务会自动读取配置,利用注解自动注入shardingDataSource类;获取shardingDataSource类中ShardingRuntimeContext类,再从ShardingRuntimeContext中获取ShardingRule,ShardingSphereMeteDate与SQLParserEngine类,利用这些类作为参数生成ShardingRoutDecorate类;程序会根据目标库目标表参数shardingColumn,table, primaryKey,limit替换查询sql 模板中的参数来遍历目标库目标表中的数据。
[0005]优选的,根据查询sql查询结果shardingColumn,替换路由规则sql模板中的参数。
[0006]优选的,利用ShardingRoutDecorate类来解析刚才生成的路由规则sql,获取该sql的路由结果,判断该sql的路由规则是否包含目标库目标表,如果不包含目标库目标表则通过table,shardingColumn与查询sql结果替换删除sql模板中参数生成删除sql,执行删除sql来进行数据删除。
[0007]优选的,删除后根据查询sql返回的数据数量更新limit参数,重新根据查询sql模板生成查询sql继续遍历目标库目标表数据,直到遍历完成,程序结束。
[0008]本专利技术提出的一种基于ShardingSphere

JDBC进行数据优化的解决方法,有益效果在于:1.本专利技术降低手动删除表数据造成的数据丢失几率;
2.本专利技术减少二次配置,原有配置拿来即用;3.本专利技术删除冗余数据,释放更多的硬盘空间。
附图说明
[0009]图1为本专利技术的流程图。
具体实施方式
[0010]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0011]实施例1,请参阅图1本专利技术提供一种技术方案:一种基于ShardingSphere

JDBC进行数据优化的解决方法,其特征在于,包括以下步骤:启动程序之前,先对sharding

jdbc分库分表规则进行配置,需配置:spring.shardingsphere.datasource参数;spring.shardingsphere.sharding.tables参数;spring.shardingsphere.sharding.binding

tables参数;配置完分库分表规则后再配置目标库目标表参数,如下primaryKey,shardingColumn,table,limit;启动服务后,服务会自动读取配置,利用注解自动注入shardingDataSource类;获取shardingDataSource类中ShardingRuntimeContext类,再从ShardingRuntimeContext中获取ShardingRule,ShardingSphereMeteDate与SQLParserEngine类,利用这些类作为参数生成ShardingRoutDecorate类;程序会根据目标库目标表参数shardingColumn,table, primaryKey,limit替换查询sql 模板中的参数来遍历目标库目标表中的数据;根据查询sql查询结果shardingColumn,替换路由规则sql模板中的参数,利用ShardingRoutDecorate类来解析刚才生成的路由规则sql,获取该sql的路由结果,判断该sql的路由规则是否包含目标库目标表,如果不包含目标库目标表则通过table,shardingColumn与查询sql结果替换删除sql模板中参数生成删除sql,执行删除sql来进行数据删除,删除后根据查询sql返回的数据数量更新limit参数,重新根据查询sql模板生成查询sql继续遍历目标库目标表数据,直到遍历完成,程序结束。
[0012]尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本专利技术的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本专利技术的范围由所附权利要求及其等同物限定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ShardingSphere

JDBC进行数据优化的解决方法,其特征在于,包括以下步骤:启动程序之前,先对sharding

jdbc分库分表规则进行配置,需配置:spring.shardingsphere.datasource参数;spring.shardingsphere.sharding.tables参数;spring.shardingsphere.sharding.binding

tables参数;配置完分库分表规则后再配置目标库目标表参数,如下primaryKey,shardingColumn,table,limit;启动服务后,服务会自动读取配置,利用注解自动注入shardingDataSource类;获取shardingDataSource类中ShardingRuntimeContext类,再从ShardingRuntimeContext中获取ShardingRule,ShardingSphereMeteDate与SQLParserEngine类,利用这些类作为参数生成ShardingRoutDecorate类;程序会根据目标库目标表参数sha...

【专利技术属性】
技术研发人员:郭成强张彪
申请(专利权)人:杭州视洞科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1