我们平时使用事务的时候,可能脑子里面想到和事务有关的知识点无非就是,ACID,事务隔离级别那一套,使用的事务也就是是通过注解的形式,或者手动开启事务。更细致一点的问题或许没有深究下去,比如事务的传播行为,注解形式和手动事务的区别等,今天我们就这几个方面进行介绍。
1.事务的概念事务是一组数据库操作的执行单元,这些操作要么全部成功执行,要么全部失败回滚。事务具有以下四个基本特性,通常简称为ACID特性:
原子性(Atomicity):事务被视为一个原子操作,要么全部执行成功,要么全部执行失败回滚。如果事务中的任何一步操作失败,那么整个事务会被回滚到事务开始之前的状态,不会留下部分完成的结果。
一致性(Consistency):事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。换句话说,事务的执行将使数据库从一个一致的状态转移到另一个一致的状态。
隔离性(Isolation):并发执行的事务之间应该相互隔离,使每个事务都感觉不到其他事务的存在。事务的隔离性确保了在并发环境中,每个事务都能独立地访问和修改数据,而不会相互干扰或产生不一致的结果。
持久性(Durability):一旦事务提交成功,对数据库的修改将永久保存,即使系统发生故障或重启。持久性确保了事务的结果是可靠和持久的。
2.事务的隔离级别为了实现事务的隔离性,数据库定义了不同的隔离级别,用于控制并发事务之间的互相影响程度。常见的隔离级别包括:
读未提交(ReadUn