分享改进 高性能通用分表归档存储过程-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

分享改进 高性能通用分表归档存储过程

简介:

因高层突然变卦 要以存储过程来完成订单的拆分归档工作 所以虫子的同步工具先暂时搁置一段时间。


存储过程的方案刚完成,先晒下性能 测试环境 总共33张表 数据量如下

 

归档表初始化

先看批次500条的性能

看看运行时间

2.342秒 !!!!!

看看我们插入了的数据是否准确

OK源表的数据是500 或许大家对这组数据不以为然 但是你要明白 在33张特大表中进行的操作 并且之间层级关联 各种安全 容错处理

再清除一下 试试5000条

70秒 有木有 有木有 比预想的性能要差一些 因为5000条所涵盖的事务太大

数据还是很完美

总的来说 这样的性能对于这样的应用场景 应该没有多少老大会不满意了


 原理先简单阐述一下 源码里的注释非常详细

源表:一般是指同步 归档等的主表 demo中以订单头表为例

一级表:以源表为关联表的数据表

二级表:以一级表为关联表的数据表

...

异常表:容错处理 用来存放异常数据 如果当期批次出错 则将本次批次源表关联键信息入库 下一批次则过滤这些数据再执行

减少IO的操作次数 用游标循环源表来关联一级表 二级表等 是很错误的方案

理清层级关系 源表过滤数据副本化 如果一级表关联的操作次数比较多那么可以模仿源表操作 以临时表取代物理表 如果表关联的操作次数不多可以直接生成数据过滤池

源码下载:点击这里

开源相关:点击这里 

有问题可以留言或者右上角点击QQ

 

 



本文转自 熬夜的虫子  51CTO博客,原文链接:http://blog.51cto.com/dubing/712456


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

云安全开发者的大本营

其他文章
最新文章
相关文章