事务并发所产生的问题
- 脏读:一个事务读到另一个事务没有提交的更新数据.
一个事务还未提交,但是已经改变了部分数据,此时另外一个事务来读数据就会读到还未提交的数据(而这些数据未来可能是要回滚到初始状态的)
- 不可重复读:一个事务两次读同一行数据,可是这两次读到的数据不一样.
百度百科上说的挺详细了,就是当事务1在访问数据的时候,事务二可能也访问了这些数据并做了修改,此时事务一第二次去读取数据的时候,数据就是错误的了.
- 幻读: 事务一更改不完数据
这个我和不可重复读有些混淆了,比如说事务一修改了数据的每一行,然后事务二又给添加了一行,此时事务一就好像没有对文档进行处理一样.
- 丢失更新:撤销一个事务的时候,把其他事务已经提交的更新给覆盖了.
这个还是比较好理解的,就是说事务一和事务二公用数据,事务一提交失败,但是事务二成功了,(此时事务二已经提交完毕),但是事务一失败了,回滚到初始状态,事务二的更改就作废了.
脏读和幻读总有些混淆…