1、脏读 (dirty read)
A事务读到B事务尚未提交的数据,就是脏读。
例如:
事务A更新某条数据
事务B读取该条数据
事务A commit
事务B commit
这种情况下事务B读的就是脏数据。
2、不可重复读 (unrepeatable read)
在同一个事务中,再次读取数据时(就是你的select操作),所读取的数据,和第1次读取的数据,不一样了。就是不可重复读。
例如:
事务A读取数据
事务B更新数据
事务B commit
事务A再次读取数据
这时A两次读取的数据就不一样了,也就是不可重复读。
3、幻读 (phantom read)
事务A读取与搜索条件相匹配的若干行。事务B以插入或删除行等方式来修改事务A的结果集,然后再提交。
例如:
事务A查询到了5条数据
事务B更新了相关联的表
事务B commit
事务A再次查询只得到了4条数据
这次事务A就是幻读了