Spring大事务优化有哪些具体策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2622个文字,预计阅读时间需要11分钟。
所谓的大事务即是比较长耗时的事务。Spring有两种方式实现事务,分别是编程式和声明式。自动开启事务,MySQL默认自动提交事务,一条语句执行完自动提交。一、大事务产生的原因
所谓的大事务就是耗时比较长的事务。
Spring有两种方式实现事务,分别是编程式和声明式两种。
不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。
一、大事务产生的原因- 操作的数据比较多
- 调用了 rpc 方法
- 有其他非 DB 的耗时操作
- 大量的锁竞争
- 执行了比较耗时的计算
- 并发情况下,数据库连接池容易被撑爆
- 锁定太多的数据,造成大量的阻塞和锁超时
- 执行时间长,容易造成主从延迟
- 回滚所需要的时间比较长
- undo log日志膨胀,不仅增加了存储的空间,而且可能降低查询的性能
最主要的影响数据库连接池容易被撑爆,导致大量线程等待,造成请求无响应或请求超时。
三、大事务优化方案 1、使用编程式事务在实际项目开发中,有多个写请求就需要用到事务,我们在业务方法加上@Transactional注解开启事务功能,这是非常普遍的做法,它被称为声明式事务。
本文共计2622个文字,预计阅读时间需要11分钟。
所谓的大事务即是比较长耗时的事务。Spring有两种方式实现事务,分别是编程式和声明式。自动开启事务,MySQL默认自动提交事务,一条语句执行完自动提交。一、大事务产生的原因
所谓的大事务就是耗时比较长的事务。
Spring有两种方式实现事务,分别是编程式和声明式两种。
不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。
一、大事务产生的原因- 操作的数据比较多
- 调用了 rpc 方法
- 有其他非 DB 的耗时操作
- 大量的锁竞争
- 执行了比较耗时的计算
- 并发情况下,数据库连接池容易被撑爆
- 锁定太多的数据,造成大量的阻塞和锁超时
- 执行时间长,容易造成主从延迟
- 回滚所需要的时间比较长
- undo log日志膨胀,不仅增加了存储的空间,而且可能降低查询的性能
最主要的影响数据库连接池容易被撑爆,导致大量线程等待,造成请求无响应或请求超时。
三、大事务优化方案 1、使用编程式事务在实际项目开发中,有多个写请求就需要用到事务,我们在业务方法加上@Transactional注解开启事务功能,这是非常普遍的做法,它被称为声明式事务。

