幻读:听说有人认为我是被MVCC干掉的
前言 我是幻读,听说有人认为我是MVCC解决的,为了让大家更全面地理解我,只能亲自来解释一下。 系列文章 1. 揭开MySQL索引神秘面纱 2. MySQL查询优化必备 3. 上来就问MySQL事务,瑟瑟发抖... 4. MVCC:听说有人好奇我的底层实现 一、我是谁? 先给大家做一个简单的自我介绍,我就是事务并发时会产生的三大问题之一。 我的其它俩兄弟脏读、不可重复读被MVCC在上一个回合无情的干掉了,至于上个回合发生了什么可以去看剧情回顾。 我的由来就是因为主人在操作一组数据时还有很多人也在对这组数据进行操作。 举一个简单的案例: 根据条件在对一组数据进行过滤返回的结果为100个,但是在主人操作的同时其他人又新增了符合条件的数据,然后主人再次进行查询时返回结果为101。第二次返回的数据跟第一次返回数据不一致。 于是我诞生了,大家还给我起了个很好听的名字幻读。 为什么会给我起这个名字呢!那是因为我给人们的现象好像出了幻觉一样。 二、为什么有人会认为我是被MVCC干掉的 为了演示方便,就直接使用之前的测试表来进行操作。 同时大家可以看到此表还有一些测试数据,一切从头开始,清空表。 清空...