事务并发会导致脏写(Dirty Write)、脏读(Dirty Read)、不可重复读(Non-Repeatable Read)和幻读(Phantom)问题。
脏写(Dirty Write)
如果一个事务修改了另一个未提交的事务修改过的数据,就造成了脏写。Session A开启一个事务,然后读取了SessionB未提交的数据进行修改,修改完后Session A提交,然后SessionB rollback了当前事务,就出现了Session A发现自己明明做了修改并提交成功,但实际上记录并没有更新,这就是脏写。
脏读(Dirty Read)
事务A读取了事务B更新未提交的数据,然后B回滚操作,那么A读取到的数据是脏数据。
不可重复读(Non-Repeatable Read)
在同一个事务里,对同一条数据两次读取,两次读取的数据不一样。事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果不一致。
幻读(Phantom)
在同一个事务里以相同的条件进行两次查询,每次查询的数据行数不一样,在两次查询过程中有另外一个事务对数据做了插入操作,造成了幻读。
做什么 为什么做 怎么做 需要什么资源 遇到问题找谁寻求支持。
眼勤(勤观察) 耳勤(多倾听) 腿勤(勤拜访客户) 口勤(勤打电话、勤沟通) 手勤(勤发信息) 脑勤 (勤思考、勤总结、勤学习)
--管理者一天的布局