在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性的问题
- 丢失修改
T1和T2两个事务都对一个数据进行修改,T1先修改,T2后修改,T2的修改覆盖了T1的修改 - 读脏数据
T1修改一个数据,T2随后读取这个数据。如果T1撤销了这次修改,那么T2读取的数据时脏数据 - 不可重复读
T2读取一个数据,T1对该数据做了修改。如果T2再次读取这个数据,此时读取结果和第一次读取的结果不同。 - 幻影读
T1读取某个范围内的数据,T2在这个范围内插入新的数据,T1再次读取这个范围内的数据,此时读取的结果和第一次读取的结果不同。
产生并发不一致性的问题主要原因是破坏了事务的隔离性,解决方法是通过并发控制来保证隔离性。并发控制可以通过封锁来实现。