事务
# 事务四大特性
- 原子性(Atomicity)
- 一致性(Consistent)
- 隔离性(Isolation)
- 持久性(Durable)
# 并发事务的问题
- 脏写(更新丢失) : 最后的更新覆盖了由其他事务所做的更新
- 脏读 : 事务A读取到了事务B已经修改但尚未提交的数据
- 不可重读 : 事务A内部的相同查询语句在不同时刻读出的结果不一致,不符合隔离性
- 幻读 : 事务A读取到了事务B提交的新增数据,不符合隔离性
# 事务隔离级别
- 读未提交(read-uncommitted) : 以上问题都可能
- 读已提交/不可重复读(read-committed) : 可以解决脏读
- 可重复读(repeatable-read) : 可以解决脏读、不可重复读;mysql默认的事务隔离级
- 串行化(serializable) : 可以解决脏读、不可重复读、幻读 ; 查询也会被加上行锁
# 操作
- 常看当前数据库的事务隔离级别: show variables like 'tx_isolation';
- 设置事务隔离级别:set tx_isolation='REPEATABLE-READ';
# 参考资料
编辑 (opens new window)
上次更新: 2023/01/24, 15:21:15