在这篇文章中,我将重点围绕MySQL中
可重复读(Repeatable read)能防住幻读吗?
这一问题展开讨论,相信看完这篇文章后,你一定会对事务隔离级别有新的认识....了解到了上诉的一些背景知识后,下面正式开始我们的议题.
可重复读(Repeatable read)能防住幻读吗?
可重复读
在讲可重复读之前,我们先在mysql的InnoDB下做下面的实验....细心的同学应该也看到了,通过MVCC读取出来的数据其实是历史数据,而不是最新数据,这在一些对于数据时效特别敏感的业务中,很可能出问题,这也是MVCC的短板之处,有办法解决吗? 当然有....,即id=1,我们再通过主键id=1找到我们要的数据,这个过程称为回表....那如果有一个新的范统要插进行呢? 因为范统的前后并没有被锁住,是能成功插入的,这样就极大地提高了数据库的并发能力.
马失前蹄
上文中说了可重复读能防不可重复读,还能防幻读,它能防住所有的幻读吗?