一、事务特性
- 原子性:事务不可分割
- 一致性:数据执行前后完整性一致
- 隔离性:事务之间互相不影响
- 持久性:事务结束,数据就持久化到数据库
二、事务的安全问题
- 读问题
- 脏读:一个事务读到另一个事务未提交的数据
- 幻读:一个事务读到另一个事务已提交的insert数据,导致事务中多次查询结果不一致
- 不可重复读:一个事务读到另一个事务已提交的update数据,导致事务中多次查询结果不一致
- 写问题
- 丢失更新
三、事务隔离级别
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
未提交读 | √ | √ | √ |
已提交读 | × | √ | √ |
可重复读 | × | × | √ |
可串行化 | × | × | × |
串行读:完全串行化的读,每次读都需要获得表级共享锁,读写会相互阻塞。(效率很低)
未完待续。。。