事务的四大特点
ACID
原子性:要么全部成功 要么全部失败
一致性:在事务之前的数据总和 与 事务之后的数据总和 应该一致
隔离性:一个事务在执行的时候,其他事务是否可以操作该事务操作的数据
持久性:数据只要被存储了,就应该一直存在。哪怕数据库崩溃了,数据也不能丢失
隔离级别
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交(read-uncommitted) | 是 | 是 | 是 |
不可重复读(read-committed) | 否 | 是 | 是 |
可重复读(repeatable-read) | 否 | 否 | 是 |
串行化(serializable) | 否 | 否 | 否 |
脏读:一个事务读取了另一个事务更新但是未提交的数据
不可重复读:一个事务在多次读取一个数据的过程中,另一个事务对该数据做了更新操作,导致不同次读取到的同一个数据的值是不一致的
幻读:一个事务在操作数据的时候,另一个事务向数据库中插入了新数据,第一个事务会发现数据变多了,像产生了幻觉一样