大家好,我是小林。 我之前写过一篇数据库事务的文章「 事务、事务隔离级别和MVCC」,这篇我说过什么是幻读。 然后前几天有位读者跟我说,我这个幻读例子不是已经被「可重复读」隔离级别解决了吗?为什么还要有 next-key 呢? 他有这个质疑,是因为他做了这个实验。 实验的数据库表t_stu 如下,其中 id 为主键。 然后在可重复读隔离级别下,有两个事务的执行顺序如下: 从这个实验结果可以看到,即使事务 B 中途插入了一条记录,事务 A 前后两次查询的结果集都是一样的,并没有出现所谓的幻读现象。 读
幻读 https://www.jianshu.com/p/42e60848b3a6 https://www.toutiao.com/a6759503704325358093/?tt_from=mobile_qq&utm_campaign=client_share×tamp=1575940029&app=news_article&utm_source=mob...
03-10
93万+
文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...
隐藏字段 MySQL 的InnoDB 会维护一系列不暴露给用户的隐藏字段,其中有3个用于实现非阻塞读 DB_TRX_ID 最新一次修改本行记录的操作ID 同一个事务,同一个操作要加以区分,这里指操作 DB_ROLL_PTR 回滚指针,存储的地址配合undo log DB_ROW_ID InnoDB 无论有没有主键,都会通过该字段唯一标识一条记录 undo log 执行流程 S...