目录
事务是一个原子操作单元,要么全部执行成功,要么全部执行失败。如果事务中的任何一步失败,整个事务都将被回滚到最初状态。
一.什么是事务?
定义: 一系列操作的集合
二.事务四个特征
原子性 Atomicity
事务是一个原子操作单元,要么全部执行成功,要么全部执行失败。如果事务中的任何一步失败,整个事务都将被回滚到最初状态。
一致性 Consistency
事务在执行之前和执行之后,数据库的完整性约束不会被破坏。换句话说,事务将数据库从一种一致状态转换为另一种一致状态。
隔离性 Isolation
事务之间应该是相互隔离的,即一个事务的执行不应该受其他事务的影响。这意味着一个事务的中间状态对其他事务是不可见的。
持久性 Durability
一旦事务被提交,其结果应该是永久性的,即使发生系统故障或重启,也不应该丢失提交的事务。
三.在并发情况下,数据库隔离级别问题
-
脏读(Dirty Read):一个事务读取了另一个事务未提交的数据,导致读取到无效数据的情况。
-
不可重复读(Non-Repeatable Read):一个事务内多次读取同一数据行,但在读取过程中另一个事务修改了该数据行,导致两次读取结果不一致。
-
幻读(Phantom Read):一个事务在读取某个范围的数据时,另一个事务在该范围内插入新的数据,导致第一个事务多次读取同一数据范围时,发现了不同数量的行。
-
丢失更新(Lost Update):两个事务同时读取同一数据并进行修改,但是其中一个事务的修改被另一个事务覆盖,导致前一个事务的修改丢失。