数据库的并发操作会带来一些数据不一致问题,例如,丢失修改、读“脏数据”、不可重复读。
一、丢失修改
事务A与事务B从数据库中读入同一数据并修改,事务B的提交结果破坏了事务A提交的结果,导致事务A的修改被丢失。
关键:修改同一数据。
二、读“脏数据”
事务A修改某一数据,并将其写回磁盘,事务B读取同一数据后,事务A由于某种原因被撤销,这时事务A已修改过的数据恢复原值,事务B读到的数据就与数据库中的数据不一致,是不正确的数据。
关键:读了被回滚的数据。
三、不可重复读
事务A读取数据后,事务B执行了更新操作,事务A使用的仍是更新前的值,造成了数据的不一致性。
关键:事务A,两次读取同一数据。(期间被事务B修改)。