MySQL事务隔离级别有4级
1.读取未提交
- 事务A新增一条记录,尚未提交,事务B可以读取
- 别人还没提交,你就可以读了,造成脏读
2.读已提交
- 事务A新增一条记录,尚未提交,事务B不可以读取
- 事务A新增一条记录,提交后,事务B可以读取
3.可重复读
- 相同事务,每次读取数据一致
- 事务B在读取过程中(开始事务,读取过一次),事务A的写操作提交与否,事务B当前事务中都不可读取
- 事务A已经更新了数据,但是事务B读的还是老数据,可重复读
4.串行化
- 事务B在读过程中(未提交),事务A的写操作会挂起等待
- 事务B在读过程中(未提交),事务A的读操作正常
- 事务B提交后,事务A写操作会执行成功
- 事务A在写过程中(未提交),事务B的读操作会挂起等待
- 事务A提交后,事务B读操作会执行成功
总结:
- 第1级别,一般不会用,脏读风险较高;
- 第2级别,建议使用
- 第3级别,MySQL默认级别,不过建议修改级别为读已提交
- 第4级别,不建议使用,影响性能
本文完。