事务隔离级别

事务并发可能带来的问题

  • 1 脏读:读到其他事务没有提交的数据

  • 2 幻读:读到数据的数量与之前读到的数据数量不同,比如在本事务读的时候,其他事务向其中插入了几行数据,然后被本事务读到。

  • 3 不可重复读:本事务读到的数据和之前不一样。

  • 4 丢失修改:本事务修改的数据被其他事务也修改了,称为丢失修改。

  • 注意:幻读与不可重复读的主要区别在于,幻读是前后读到的数据数量不一样,不可重复读是指前后读到的数值不同。

事务隔离级别

  • 1.读未提交数据:允许读取其他事务没有提交的数据,没有解决上面 1 、 2 、 3 1、2、3 123的问题。
  • 2.读已提交数据:允许读取其他事务已经提交的数据,解决了脏读的问题。
  • 3.可重复读数据:前后读到的数据值相同。解决了脏读、不可重复读的问题,但是没有解决幻读的问题。这里可能会有疑问,为啥可重复读但是没有解决幻读的问题,通俗易懂的解释就是,可重复读是使用视图实现的,当可重复读不涉及到修改的时候,前后读到的数据一样,因为视图不会修改。一旦数据涉及到一些修改的时候引起视图的更新可能出现幻读的问题。具体可以参考:这里
  • 4.可串行化:解决了上面的3个问题。

参考文献:

  • 文章1

你可能感兴趣的:(数据库,开发语言)