1.脏写:事务B去修改了事务A修改过的值,而此时事务A还没有提交,所以事务A随时会回滚,导致事务B修改的值也没了。
2.脏读:事务B去查询了事务A修改过的值,而此时事务A还没有提交,所以事务A随时会混滚,导致事务B再次查询,就读不到刚才事务A修改过的数据了。
3.不可重复读:事务A在执行过程中多次读取一个数据,但是事务B和事务C等其他数据在事务A执行过程中会修改该数据并提交,导致事务A每次可能读取到的该数据的值都会变化。
不可重复读并不一定是一个问题,它取决于我们希望数据库的表现是怎样的,如果我们希望事务A在任何时候都能读取到其他事务的修改,那么,数据库就应该是不可重复读的;如果我们希望事务A是可重复读的,但是数据库的表现是不可重复读,那么此时就是有问题的。
4.幻读:一个事务用同一条SQL查询,结果每次查询都会发现一些之前没看到的数据。
脏写、脏读、不可重复读、幻读
于 2022-08-27 13:00:47 首次发布