脏读,不可重复读,幻读
脏读:事物a开启,查询第一次数据,事物b开启,修改了数据,但是没提交,事物a又一次查数据,两次查到的不一样。
这里用read commited(读提交)就可以解决。
不可重复度:重点是修改(update)和删除(delete),事物a开启,查询第一次数据,事物b开启,修改数据并且提交,事物a又查了一次数据,发现数据改变,需要repeatable read才能解决问题。这种情况对行加锁就能避免。
幻读:重点是(insert)增加,事物a开启,查询第一次数据,事物b开启,对数据进行了增加,a事物再查,发现两次查询结果不一样,需要serializable才能解决问题。这种情况对表加锁才能避免。
读未提交read uncommitted 脏读 不可重复读 幻读 都会出现
读提交read committed 脏读避免; 不可重复读 幻读 会出现
可重复读repeatable read 脏读 不可重复读 避免; 幻读 会出现
串行化serializable 脏读 不可重复读 幻读 都可以避免