码迷,mamicode.com
首页 > 其他好文 > 详细

脏读,不可重复读,幻读及事务隔离等级

时间:2020-11-10 10:41:03      阅读:2      评论:0      收藏:0      [点我收藏+]

标签:其他   body   读取   重复   不一致   The   repeat   不能   完成   

脏读,不可重复读,幻读及事务隔离等级

概念 现象 出现条件 解决办法
脏读 读取到了别的事务未提交的数据,而读取到的数据可能会回滚,所以得到的数据可能是假数据,故称为脏读 隔离等级为Uncommitted 将隔离等级改为Committed
不可重复读 事务中两次查询结果不一致。原因:A事务的两次查询过程中,B事务修改/删除并提交了新的数据 隔离等级为Committed及以下 将隔离等级改为Repeatable
幻读 事务中两次查询结果条数不一致。原因:A事务的两次查询过程中,B事务新增并提交了符合A事务查询条件的数据 隔离等级为Repeatable及以下 将隔离等级改为Serializable



事务级别 特点/实现方式 脏读 不可重复读 幻读
Uncommitted 可以读取别的事务没有提交而可能回滚的数据,造成脏读。
Committed 只能读取其他事务已提交的数据。如果有其他未完成的事务,则不能获得查询结果。必须等待所有事务都结束,才能返回查询结果。避免了脏读。
但是A事务已查询出来的数据,可以被B事务能修改/删除,造成了A事务两次相同语句查询出来的结果不一致,即不可重复读。也会造成幻读
×
Repeatable A事务的查询过程中(A事务未结束),B事务不能更新或删除A事务中读取出来的数据,必须等待A事务结束后才能进行。避免了不可重复读。
但是B事务可以新增符合A事务查询条件的数据。从而会造成幻读。即A事务在B事务新增前后查询出来的结果数目不同。
× ×
Serializable A事务查询过程中(A事务未结束),B事务至少不能新增/修改/删除符合A查询条件内的任何数据,必须等待A事务结束。也有可能不能增/删/改A事务查询条件外的数据。
是最强隔离等级。
× × ×

脏读,不可重复读,幻读及事务隔离等级

标签:其他   body   读取   重复   不一致   The   repeat   不能   完成   

原文地址:https://www.cnblogs.com/xyz0835/p/13948724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!