MySQL四种隔离级别
- Repeatable read (可重复读):可避免脏读、不可重复读的发生。
- Read committed (读已提交): 可避免脏读发生。
- Read uncommitted (读未提交):最低级别,任何情况都无法保证。
- Serialzable(串行化):可避免脏读、不可重读读、幻读的发生
脏读、不可重复读、幻读
- 脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A督导的数据就是脏数据
- 不可重复读:事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同以数据时,结果不一致。
- 幻读:系统管理员A将数据库中所有的学生的成绩v从具体的分数改为ABCDE等级,但是系统管理员B就在这个时候插入一条具体分数的记录,当系统管理员A改结束后发现还有一条记录,没有改过来,就行发生了幻觉一样,这就叫幻读。
总结:不可重复读的和欢度很容易混肴,不可重复度侧重与修改,幻读侧重于新增或者删除。解决不可重复读的问题只需要锁住满足条件的行,解决幻读需要锁表。