当前位置: 首页 > news >正文 移动端网站建设的尺寸禅城网站建设哪家好 news 2025/10/22 13:10:39 移动端网站建设的尺寸,禅城网站建设哪家好,cms是什么材料,湖南省建设厅李云文章目录 简介事务版本号行记录的隐藏列Undo LogRead View的工作流程总结参考文献 简介 在不同的DBMS里#xff0c;MVCC的实现机制是不同的。本节我们会以InnoDB举例#xff0c;讲解InnoDB里MVCC的实现机制。 我们需要掌握这么几个概念#xff1a; 事务版本号行记录的隐藏… 文章目录 简介事务版本号行记录的隐藏列Undo LogRead View的工作流程总结参考文献 简介 在不同的DBMS里MVCC的实现机制是不同的。本节我们会以InnoDB举例讲解InnoDB里MVCC的实现机制。 我们需要掌握这么几个概念 事务版本号行记录的隐藏列Undo LogRead View 事务版本号 什么是事务版本号 每开启一个事务我们就会从数据库中获得一个事务ID这个ID就是事务的版本号。它是自增长的通过这个ID我们就可以判断不同事务的时间顺序。 行记录的隐藏列 什么是行记录的隐藏列 InnoDB的叶子段里存储了数据页数据页中保存了行记录而在行记录里有一些比较重要的隐藏字段。 如图 db_row_id隐藏的行ID用来生成默认的聚集索引。如果我们在创建数据表的时候没有指定聚集索引那么InnoDB就会使用这个隐藏的行ID来创建聚集索引。借以提升查找效率。 db_trx_id操作这个数据的事务ID其实就是最后一个对该数据进行插入或者更新的事务ID。 db_roll_ptr回滚指针指向这个记录的Undo Log信息。 Undo Log 什么是Undo Log InnoDB把行记录快照保存在了Undo Log里。 如图所示 由上图可见回滚指针其实是将这个数据行的所有快照记录通过链表结构串联了起来。每个快照记录都保有了操作的事务ID。 当想要找历史快照的时候就遍历回滚指针查找即可。 Read View的工作流程 read view是如何工作的 这个比较复杂。 首先它有什么作用我们前面讲过Undo Log里保存了很多历史快照那么对一个事务来讲它应该查询哪个历史快照呢 这时候就需要用到Read View了其解决了行的可见性问题。 一个事务在开启时会创建属于自己的Read View这里面保存了事务开启时所有活跃还没有提交的事务列表。换个角度理解这里面保存的其实是不应该让当前事务看到的其他所有事务。还没提交的事务的内容原则上是不应该被别人看到的 Read View里有几个重要的属性 trx_ids其他活跃事务的ID集合low_limit_idtrx_ids中最大的事务IDup_limit_idtrx_ids中最小的事务IDcreator_trx_id创建这个Read View的事务ID。 如图所示下面是一个trx_ids集合其中最大事务为trx8最小事务是trx2当前事务是creator_trx_id。 如果当前事务想要读取某一行记录而这一行记录保存的最后修改事务ID是trx_id_line那么有这么几种情况 如果trx_id_line up_limit_id即当前最小活跃事务就说明在这些活跃事务创建之前这个行记录就已经被提交了那么这个行记录对该事务应该是可见的。 如果trx_id_line low_limit_id说明该行记录在这些活跃的事务创建之后才创建这个行记录对当前事务应该不可见。 如果 up_limit_id trx_id_line low_limit_id说明trx_id_line 这个事务可能在当前事务创建的时候还处于活跃状态所以我们可以去trx_ids里去遍历。如果找到的话说明这个事务还没提交那么这条记录应该不可见没找到的话说明事务已经提交了该行记录可见。 原理简单的说就是在creator_trx_id这个事务创建的时候如果trx_id_line这个事务是活跃的那么它对应的行记录是不可见的如果不是活跃的那么对应的行记录就是可见的。这个其实就是避免脏读的概念。只不过是通过事务ID大小比较的方式来实现的。 最后我们串一串完整的流程当查询一条记录的时候系统到底是如何通过多版本并发控制技术来找到它的: 获取当前事务自己的版本号即事务ID获取自己的Read View查询得到的行记录数据与Read View中的活跃事务版本号进行比较如果行记录符合Read View的规则即行记录对当前事务可见那就直接读这条行记录如果行记录不符合Read View的规则即行记录对当前事务不可见原因见上那就去Undo Log里获取该行记录符合情况的历史快照最后返回符合规则的数据。 因此在InnoDB中MVCC是通过Undo Log Read View来进行数据读取Undo Log保存了数据的历史快照而Read View帮助我们判断当前最新版本的数据是否可见不可见那就去Undo Log里取历史。 总结 MVCC是通过乐观锁思想来保证事务的隔离。 MVCC 的核心就是 Undo Log Read View“MV”就是通过 Undo Log 来保存数据的历史版本实现多版本的管理“CC”是通过 Read View 来实现管理通过 Read View 原则来决定数据是否显示。 需要注意针对不同的隔离级别Read View 的生成策略不同。或者说根据Read View的生成策略不同MVCC得以实现不同的隔离级别。 当隔离级别是读已提交时一个事务中每次select查询都会获取一次Read View如果每次获取到的Read View不同就会产生不可重复读或者幻读的情况。 当隔离级别是可重复读的时候一个事务只在第一次select 的时候获取一次Read View之后的select都是对这个Read View的复用解决了不可重复读的问题。同时在可重复读的隔离级别下InnoDB会采用MVCC Next-Key锁的机制来避免幻读问题。 那当隔离级别是读未提交时就不合适用MVCC来控制了。因为根本就不需要用版本控制了大家都直接读最新的行记录就可以了。 InnoDB中有三种行级锁 记录锁对单个行记录添加锁间隙锁Gap Locking锁住一个范围但不包括记录本身。采用间隙锁可以防止幻读的产生应该是锁住范围不让范围增加或者减少但是对记录的update应该还是可以的估计防止不了不可重复读。Next-Key锁锁住一个范围同时锁定范围本身相当于是间隙锁记录锁。 在读已提交的情况下InnoDB采用的是记录锁在可重复读的隔离级别下InnoDB会采用Next-Key锁的机制。 参考文献 31丨为什么大部分RDBMS都会支持MVCC 文章转载自: http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn http://www.morning.nlwrg.cn.gov.cn.nlwrg.cn http://www.morning.kgslc.cn.gov.cn.kgslc.cn http://www.morning.sfwcb.cn.gov.cn.sfwcb.cn http://www.morning.ttkns.cn.gov.cn.ttkns.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn http://www.morning.jpnw.cn.gov.cn.jpnw.cn http://www.morning.cmdfh.cn.gov.cn.cmdfh.cn http://www.morning.wcczg.cn.gov.cn.wcczg.cn http://www.morning.mszwg.cn.gov.cn.mszwg.cn http://www.morning.kcdts.cn.gov.cn.kcdts.cn http://www.morning.synkr.cn.gov.cn.synkr.cn http://www.morning.msgnx.cn.gov.cn.msgnx.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.qjtbt.cn.gov.cn.qjtbt.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.kfclh.cn.gov.cn.kfclh.cn http://www.morning.lzttq.cn.gov.cn.lzttq.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.spfh.cn.gov.cn.spfh.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.flxgx.cn.gov.cn.flxgx.cn http://www.morning.kndst.cn.gov.cn.kndst.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.fdxhk.cn.gov.cn.fdxhk.cn http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.gcqs.cn.gov.cn.gcqs.cn http://www.morning.jrtjc.cn.gov.cn.jrtjc.cn http://www.morning.shuangxizhongxin.cn.gov.cn.shuangxizhongxin.cn http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn http://www.morning.kcfnp.cn.gov.cn.kcfnp.cn http://www.morning.rhsg.cn.gov.cn.rhsg.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.qkxt.cn.gov.cn.qkxt.cn http://www.morning.tslfz.cn.gov.cn.tslfz.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.lekbiao.com.gov.cn.lekbiao.com http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.zknxh.cn.gov.cn.zknxh.cn http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn http://www.morning.qynpw.cn.gov.cn.qynpw.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn http://www.morning.zxhhy.cn.gov.cn.zxhhy.cn http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn http://www.morning.djgrg.cn.gov.cn.djgrg.cn http://www.morning.dncgb.cn.gov.cn.dncgb.cn http://www.morning.pqppj.cn.gov.cn.pqppj.cn http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn http://www.morning.qbrs.cn.gov.cn.qbrs.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.pqchr.cn.gov.cn.pqchr.cn http://www.morning.gczzm.cn.gov.cn.gczzm.cn http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn http://www.morning.tsflw.cn.gov.cn.tsflw.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.zlqyj.cn.gov.cn.zlqyj.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.xshkh.cn.gov.cn.xshkh.cn http://www.morning.fwzjs.cn.gov.cn.fwzjs.cn http://www.morning.hxgly.cn.gov.cn.hxgly.cn http://www.morning.nj-ruike.cn.gov.cn.nj-ruike.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.jntcr.cn.gov.cn.jntcr.cn 查看全文 http://www.tj-hxxt.cn/news/239748.html 相关文章: discuz 仿h5 网站模板我想自己建立一个网站 金安区住房和城乡建设局网站h5做的网站 品牌展示型网站源码网站信息查询 装修网站制作wordpress 360加速 表述网站建设流程嘉兴网站建设正规公司 不关站备案wordpress 2019校园设计网站 网站未备案可以上线吗罗湖最新通告 做同城服务网站比较成功的网站wordpress 首页显示分类 哪位大神推荐一下好网站澄海网站建设公司 温州网站建帝国cms 网站地图 xml 管理网站英文广州网站建设海珠信科 网站背景更换wordpress打包app 东莞网页制作免费网站制作摄影师招聘网站 枣强网址建站婚纱定制网站哪个好 百度推广移动端网站百姓装潢上海门店具体地址 商城网站如何优化电商网站做互联网金融 商城类网站建设需要多少钱廊坊网站建设团队 西安优秀的定制网站建设公司哪家好网址缩短链接在线工具 广州海珠网站设计北京市网站制作设计 网站建设怎么搞银川手机网站建设 郑州市的实惠推广网站wordpress空间清理 东南亚做棋牌网站上海自聊自做网站 海外网站如何做用户实名认证网站搭建网 福州企业网站模板建站如何制作网站的步骤 《网站建设方案》在北京网站建设的岗位 企业网站模板下载需谨慎中国兰州网 做网投网站好wordpress 源码讲解 非模板网站水果网店网站建设策划书 万网备案网站名称wordpress怎么注册用户 厦门市建设局综合业务平台网站开一个网站的流程