并发一致性问题

丢失数据

丢失数据: T1和T2两个事务都对一个数据进行修改, T1先修改, T2随后修改, T2的修改覆盖了T1的修改。简记为同时修改 。

读脏数据

读脏数据: T1对一个数据做了修改,T2 读取这一个数据。若T1执行 ROLLBACK 操作,则T2读取的结果和第一次的结果不一样。简记为读取失败的修改 。最简单的场景是修改完成后,紧接着查询检验结果。

不可重复读

不可重复读: T2读取一个数据, T1对该数据做了修改。如果T2再次读取这个数据,此时读取的结果和第一次读取的结果不同。简记为读时修改 ,重复读取的结果不一样。

幻影读

幻影读:T1 读取某个范围的数据, T2在这个范围内插入新的数据, T1再次读取这个范围的数

据,此时读取的结果和和第一次读取的结果不同。简记为 读时插入 ,重复读取的结果不一样。

解决方案

在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性问题。产生并发不一致性问题的主要原因是破坏了事务的隔离性。解决方法是通过 并发控制 来保证隔离性。并发控制可以通过封锁来实现,但是封锁操作需要用户自己控制,相当复杂。数据库管理系统提供了事务的隔离级别 ,让用户以一种更轻松的方式处理并发一致性问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容