专题:事务
共10篇相关文章

SpringBoot Mybatis单机事务控制如何实现?
一、场景再现 我们同时操作两张表及以上,一张表操作成功后,第二张表操作失败,此时需要回滚上一次的操作。 或者两次操作都成功,但后续业务处理的时候异常,此时需要回滚前面的所有数据库操作。 二、代码 1 @Service 2 public cl...

Spring事务失效在哪些复杂场景下会频繁发生?
Spring 事务失效是日常开发中非常常见的问题,核心原因是 Spring 声明式事务的实现依赖 AOP 动态代理,一旦代理机制被破坏或不满足事务触发条件,事务就会失效。下面我会逐一讲解最常见的失效场景、原因和解决方案,内容由浅入深,方便你...

MySQL InnoDB事务执行过程、隔离级别及并发异常如何全面解析?
在MySQL中,InnoDB引擎是唯一支持事务的存储引擎,事务也是保证数据一致性、解决并发数据访问问题的核心,更是MySQL技术面试的高频考点。本文将从InnoDB事务执行过程、事务隔离级别、事务并发异常三个核心维度,讲清原理、关联逻辑和面...

MySQL InnoDB索引操作同一行数据时,如何解释不同索引导致的锁冲突现象?
在InnoDB中,“锁是加在索引上”是核心结论,但很多人只知其然不知其所以然——当多个事务通过不同索引操作同一行数据时,是否会产生锁冲突?答案是:大概率会产生冲突(尤其是写操作),但具体取决于索引类型、操作类型和锁机制。本文从索引结构、锁的...

InnoDB如何将一个SQL更新语句从执行到磁盘落地的全过程详细解析?
InnoDB的更新事务是数据库中最核心、最复杂的操作之一,其执行过程不仅要保证数据修改的正确性,还要通过锁机制、日志体系、MVCC 等核心组件,兼顾并发性能与数据一致性(ACID)。本文将从SQL执行的底层视角,拆解一次UPDATE事务从发...

MySQL两阶段提交(2PC)如何确保redo log与binlog一致性底层逻辑究竟是怎样的?
关于事务持久性和一致性,接下来我会从为什么需要2PC、2PC完整执行流程、崩溃恢复的具体判断逻辑三个维度,把这个知识点讲透,让你不仅知其然,更知其所以然。 一、为什么必须引入两阶段提交? 首先要明确:redo log(InnoDB层)和bi...

MySQL两阶段提交(2PC)具体执行流程是怎样的?
两阶段提交(2PC)是MySQL保证redo log(InnoDB层) 和binlog(Server层) 一致性的核心机制,其执行流程严格分为「Prepare阶段」和「Commit阶段」,每个阶段都有明确的核心动作、数据状态变化和异常处理逻...

MySQL高并发下undo log版本链回滚,同一行数据回滚的底层细节是如何构建的?
在MySQL InnoDB高并发写同一行数据的场景中,undo log版本链是保证事务原子性、实现MVCC的核心。当版本链中某条事务回滚时,InnoDB并非简单“删除”该事务的版本记录,而是通过回滚指针(roll_pointer) 逆向遍历...

MySQL高并发下,undo log版本链数量、生成时机和深度如何解析?
两个核心问题——“高并发下多个事务是否生成undo log多版本链”“undo log是否加锁后才生成”,是理解InnoDB事务一致性和并发控制的关键。本文结合高并发场景,从版本链本质、生成时机、锁与undo log的关联逻辑三个维度,给出...

如何通过7种场景代码实战吃透Spring事务传播行为?
作为后端开发,Spring 事务是日常工作的基础,但不少人只会用 @Transactional 注解加个 rollbackFor,对底层的事务传播行为一知半解。直到遇到“嵌套调用事务不回滚”“重复提交导致数据异常”等问题,才发现对传播行为的...
