因高层突然变卦 要以存储过程来完成订单的拆分归档工作 所以虫子的同步工具先暂时搁置一段时间。
存储过程的方案刚完成,先晒下性能 测试环境 总共33张表 数据量如下
归档表初始化
先看批次500条的性能
看看运行时间
2.342秒 !!!!!
看看我们插入了的数据是否准确
OK源表的数据是500 或许大家对这组数据不以为然 但是你要明白 在33张特大表中进行的操作 并且之间层级关联 各种安全 容错处理
再清除一下 试试5000条
70秒 有木有 有木有 比预想的性能要差一些 因为5000条所涵盖的事务太大
数据还是很完美
总的来说 这样的性能对于这样的应用场景 应该没有多少老大会不满意了
原理先简单阐述一下 源码里的注释非常详细
源表:一般是指同步 归档等的主表 demo中以订单头表为例
一级表:以源表为关联表的数据表
二级表:以一级表为关联表的数据表
...
异常表:容错处理 用来存放异常数据 如果当期批次出错 则将本次批次源表关联键信息入库 下一批次则过滤这些数据再执行
减少IO的操作次数 用游标循环源表来关联一级表 二级表等 是很错误的方案
理清层级关系 源表过滤数据副本化 如果一级表关联的操作次数比较多那么可以模仿源表操作 以临时表取代物理表 如果表关联的操作次数不多可以直接生成数据过滤池
源码下载:点击这里
开源相关:点击这里
有问题可以留言或者右上角点击QQ
本文转自 熬夜的虫子 51CTO博客,原文链接:http://blog.51cto.com/dubing/712456