大批量日终跑批的最佳实践是什么?

银行日终跑批,总是存在部分的表需要稍微大一点的事务,但是官方推荐事务控制在500行左右。
因此就不得不去做事务的拆分,可是这就破坏了事务的原子性了。

比较典型的场景
千万以上地大表,批量插入/更新 50万行左右的数据
部分不大的表,日终更新个几千行,这也不符合官方的规范。如果是修改事务大小的参数,那么这个参数要改为多大呢?改得太大会不会有什么影响?

还是想知道一下,对于批量更新千行、万行、十万行、百万行。是不是有对应的最佳实践呢?

3 个赞

这帖子发新人报道里?
你应该开个问答帖子:joy:
小伙伴给你找了篇银行相关文章,你参考一下,不行就私信文章这个人:thinking:

2 个赞

5.X 以后是支持大事务的
大事务的代价就是需要更多的内存来支持

举个简单的场景:
insert -> 数据进入内存 -> 开启分布式事务调度
update -> 读取数据进入内存 -> 修改数据信息 -> 开启分布式事务调度

如果以上的场景需要满足事务要求,则需要满足足够的内存来存放这些信息
每个场景对应的数据和规模都不一样,需要自行评测和调试才会有比较好的答案

希望 6.0 对事务处理这块能有更好的支持方式…
看看其他人,有没有一些实践经验来帮助你…

4 个赞

感谢,这篇我看过,这个大佬的描述偏向系统架构层面的,我这边想要开发规范。我会尝试私信请教一下他

1 个赞

我还有一个疑问,在实际的开发中,联机交易和联机分析的事务限制,是不是只能通过jdbc参数来控制,比如联机交易的数据库用户,用默认的事务限制;对于批处理用户,通过连接参数来修改事务大小的限制?

1 个赞

批量,分批提交,差分数据。

1 个赞

连接参数并不能限制 事务大小
连接是保证会话交互和通讯正常的一个起始点
会话中 会有N次和 server的 交互,至于交互的内容是由 client 端来定义的

2 个赞

开发建议上有什么方法吗?我也有此问题,有结论能否分享一下?

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。