saas环境 mysql批量执行脚本的解决方案

引言:公司项目用saas版本管理多租户提供统一服务,以减少服务部署成本,但与之而来的是数据压力问题,脚本执行问题,备份数据问题。本篇主要是记录脚本执行的一些小方法。

目录

1、saas脚本批量生成及io工具类

2、遇到需要批量执行数据更新或者删除

1、saas脚本批量生成及io工具类

先提供一份生成saas脚本的io工具类,执行效果如下

所有租户脚本举例

sql脚本样例

生成的脚本样例

上工具类源码

https://github.com/dragon2030/springMVC/blob/master/src/main/java/com/bigDragon/javase/ioStream/caseRecord/SubCompanyNeedExecuteSqlUtil.java

注意:

1、执行脚本时最好先拿个公司先执行一遍脚本,没问题再全量执行

2、需要生成的脚本中有DDL相关语句需要格外注意

2、遇到需要批量执行数据更新或者删除

遇到需要批量执行更新删除脚本时,通常需要先select确认需要执行的库,和影响的数据规模大小,以下给出DML之前select saas环境多库返回的解决方案

多库中执行检查语句,收集数据返回信息

-- 自定义变量 只再脚本开始执行一遍
SET @tableRechargeCompanyTotalCount='';

-- 中间代码可批量生成
SET @tableRechargeCompanyCount='';
select 
CONCAT(ar.company_code,'-',count(\*)) into @tableRechargeCompanyCount 
from account_record ar
where ar.code='1010' and ar.type='2'
group by ar.company_code;

SET @tableRechargeCompanyTotalCount=CONCAT(@tableRechargeCompanyTotalCount,@tableRechargeCompanyCount);
SET @tableRechargeCompanyTotalCount=CONCAT(@tableRechargeCompanyTotalCount,if(@tableRechargeCompanyCount='','',' ')); 

-- 自定义变量 只再脚本结束执行一遍
select @tableRechargeCompanyTotalCount;

执行过select查询后,再批量生产DML语句

结语:

saas环境备份会有很大的工作量,但备份还是得进行,不然批量DML还是会存在很大的安全隐患,这个需要再寻找解决方案

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值