前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当前的版本号与该ReadView进行比较

当前的版本号与该ReadView进行比较

原创
作者头像
用户7737280
发布2021-12-15 17:33:40
7380
发布2021-12-15 17:33:40
举报
文章被收录于专栏:用户7737280的专栏

ReadView判断可见性的原理如下,在InnoDB中,创建一个新事务之后,当新事务读取数据时,数据库为该事务生成一个ReadView读视图,InnoDB会将当前系统中的活跃事务列表创建一个副本保存到ReadView。遴选真题当用户在这个事务中要读取某行记录的时候,InnoDB会将该行当前的版本号与该ReadView进行比较。具体的算法如下:

那么表明该行记录所在事务在本次新事务创建的时候处于活动状态,从min_trx_id到max_trx_id进行遍历,如果cur_trx_id等于他们之中的某个事务id的话,那么不可见。跳到步骤5;遴选真题

从该行记录的DB_ROLL_PTR指针所指向的回滚段中取出最新的UndoLog的版本号,将它赋值该cur_trx_id,然后跳到步骤2;http://www.gongxuanwang.com/

同一个事务里面连续执行两次同样的SQL语句,可能导致不同结果的问题,第二次SQL语句可能会返回之前不存在的行。举例说明:T1时刻事务A和事务B同时开启,分别进行了快照读,然后事务A向数据库中插入一条新的记录,遴选真题

如果事务B可以读到这条记录,就出现了"幻读",因为B第一次快照读没有读到这条数据。http://www.gongxuanwang.com/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档