-
数据库事务:
-
数据库的一系列操作操作序列,这些操作序列作为一个不可分割的最小执行单元,要么全部成功执行,要么全部不执行,即:如果有一个操作未执行成功,那么所有以前执行的操作也全部回滚
-
-
事务的ACID
-
原子性(A):事务作为最小执行单元,不可分割,作为一个原子操作,要么全部执行,要么全部回滚。
-
一致性(C):⼀致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库 事务不能破坏关系数据的完整性以及业务逻辑上的⼀致性。
-
简单来说:数据库的一致性就是数据库的数据都是正确,事务的一致性,就是事务执行前后数据库中的数据都是正确的没有错误,如果发送错误会回滚到执行事务之前的状态。
-
-
隔离性:事务与事务之间的执行是相互隔离的,互不影响
-
持久性:事务执行成功之后,会更改数据库,不会回滚,即:永久地修改了,即便系统出现故障也无法更改
-
-
隔离级别
-
读未提交:解决了更新丢失,但还是可能会出现脏读
-
读已提交:解决了更新丢失和脏读问题
-
可重复读取:解决了更新丢失、脏读、不可重复读、但是还会出现幻
-
可序化:解决了更新丢失、脏读、不可重复读、幻读(虚读
-
-
脏读、幻读、可重复读
-
脏读:一个事务读取另外一个事务还没有提交的数据。
-
幻读(读少了):指在一个事务内两次读取同一条件的数据,两次读取的数据总量不同。
-
不可重复读(读错了):指在一个事务内,多次读同一条件的数据,数据总量相同但数据的内容发生了改变。
-