隔离级别 | 是否存在脏读 | 是否存在不可重复读 | 是否存在幻读 |
read uncommit | Y | Y | Y |
read commit | N | Y | Y |
repeatable read | N | N | Y |
serializable | N | N | Y |
注意:不可重复读和幻读的区别
不可重复读是针对某些数据记录来说的,例如,当A读取了记录R,此时B也读取了记录R并对其进行修改,若此时A刷新记录就会发现此时的记录R与上次不一样,称为不可重复读,而可重复读是在读取该条记录时会对该条记录加锁的。幻读是针对符合某一条件的记录集,比如A第一次根据查询条件查询除了5条数据,此时B在往数据库中添加记录,如果A此后刷新了记录发现使用相同的过滤条件查询出来的数据条数和上次的不一样多,称为幻读。