范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

带你轻松理解MYSQLMVCC实现机制

  1. MVCC简介1.1 什么是MVCC
  MVCC是一种多版本并发控制机制。 1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销.
  1.3 MVCC实现
  MVCC是通过保存数据在某个时间点的快照来实现的.,不同存储引擎的MVCC实现是不同的,典型的有乐观并发控制和悲观并发控制.
  2.MVCC 具体实现分析
  下面,我们通过InnoDB的MVCC实现来分析MVCC使怎样进行并发控制的.
  InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的,这两个列,分别保存了这个行的创建时间,一个保存的是行的删除时间。这里存储的并不是实际的时间值,而是系统版本号(可以理解为事务的ID),没开始一个新的事务,系统版本号就会自动递增,事务开始时刻的系统版本号会作为事务的ID.下面看一下在REPEATABLE READ隔离级别下,MVCC具体是如何操作的.
  2.1简单的小例子# 假设系统的版本号从1开始. create table yang( id int primary key auto_increment, name varchar(20));INSERT
  InnoDB为新插入的每一行保存当前系统版本号作为版本号.
  第一个事务ID为1; start transaction; insert into yang values(NULL,"yang") ; insert into yang values(NULL,"long");  insert into yang values(NULL,"fei");  commit;
  对应在数据中的表如下(后面两列是隐藏列,我们通过查询语句并看不到)
  id
  name
  创建时间(事务ID)
  删除时间(事务ID)
  1
  yang   1
  undefined   2
  long   1
  undefined   3
  fei   1
  undefined select   InnoDB会根据以下两个条件检查每行记录:   a.InnoDB只会查找版本早于当前事务版本的数据行(也就是,行的系统版本号小于或等于事务的系统版本号),这样可以确保事务读取的行,要么是在事务开始前已经存在的,要么是事务自身插入或者修改过的.   b.行的删除版本要么未定义,要么大于当前事务版本号,这可以确保事务读取到的行,在事务开始之前未被删除.   只有a,b同时满足的记录,才能返回作为查询结果.   DELETE   InnoDB会为删除的每一行保存当前系统的版本号(事务的ID)作为删除标识.   看下面的具体例子分析:   第二个事务,ID为2; start transaction; select * from yang; //(1) select * from yang; //(2) commit;假设1   假设在执行这个事务ID为2的过程中,刚执行到(1),这时,有另一个事务ID为3往这个表里插入了一条数据;   第三个事务ID为3; start transaction; insert into yang values(NULL,"tian"); commit;   这时表中的数据如下:   id   name   创建时间(事务ID)   删除时间(事务ID)   1
  yang   1
  undefined   2
  long   1
  undefined   3
  fei   1
  undefined   4
  tian   3
  undefined   然后接着执行事务2中的(2),由于id=4的数据的创建时间(事务ID为3),执行当前事务的ID为2,而InnoDB只会查找事务ID小于等于当前事务ID的数据行,所以id=4的数据行并不会在执行事务2中的(2)被检索出来,在事务2中的两条select 语句检索出来的数据都只会下表:   id   name   创建时间(事务ID)   删除时间(事务ID)   1
  yang   1
  undefined   2
  long   1
  undefined   3
  fei   1
  undefined 假设2   假设在执行这个事务ID为2的过程中,刚执行到(1),假设事务执行完事务3后,接着又执行了事务4;   第四个事务: start transaction; delete from yang where id=1; commit;   此时数据库中的表如下:   id   name   创建时间(事务ID)   删除时间(事务ID)   1
  yang   1
  4
  2
  long   1
  undefined   3
  fei   1
  undefined   4
  tian   3
  undefined   接着执行事务ID为2的事务(2),根据SELECT 检索条件可以知道,它会检索创建时间(创建事务的ID)小于当前事务ID的行和删除时间(删除事务的ID)大于当前事务的行,而id=4的行上面已经说过,而id=1的行由于删除时间(删除事务的ID)大于当前事务的ID,所以事务2的(2)select * from yang也会把id=1的数据检索出来.所以,事务2中的两条select 语句检索出来的数据都如下:   id   name   创建时间(事务ID)   删除时间(事务ID)   1
  yang   1
  4
  2
  long   1
  undefined   3
  fei   1
  undefined UPDATE   InnoDB执行UPDATE,实际上是新插入了一行记录,并保存其创建时间为当前事务的ID,同时保存当前事务ID到要UPDATE的行的删除时间. 假设3   假设在执行完事务2的(1)后又执行,其它用户执行了事务3,4,这时,又有一个用户对这张表执行了UPDATE操作:   第5个事务: start transaction; update yang set name="Long" where id=2; commit;   根据update的更新原则:会生成新的一行,并在原来要修改的列的删除时间列上添加本事务ID,得到表如下:   继续执行事务2的(2),根据select 语句的检索条件,得到下表:   id   name   创建时间(事务ID)   删除时间(事务ID)   1
  yang   1
  4
  2
  long   1
  5
  3
  fei   1
  undefined   还是和事务2中(1)select 得到相同的结果.

RedmiK50Pro概念机新增直面全面屏配2亿像素,值3千这个价吗?随着现在手机品牌的越来越多,我们的选择也更多样化。而作为主打性价比与性能的手机厂商红米,我们并不陌生。Redmi手机凭借强大的硬件性能和极致的产品性价比赢得了市场认可,走上了自己的FF上市融资65亿后,又融到2。59亿,贾跃亭真的要翻身了?不知不觉间,贾跃亭造车已经7年,那些比他更晚一些造车的蔚小理,已经在市场上叱咤风云,而老贾的FF91还难产,多多少少还是让人唏嘘不已的。不过今年似乎贾跃亭开了挂了,先是在7月份,F视频号将超过抖音?腾讯总裁刘炽平视频号增长非常不错2021年,微信视频号迎来全面爆发。近日,腾讯总裁刘炽平在财报电话会议上称,视频号发展非常好,关于视频号的问题,该业务的日活跃用户数,用户观看时长和内容创作者的数量都有非常不错的增华为MateX卷屏智能手机渲染图来了虽然华为P50系列新机发售没有5G版本,但并不阻碍科技圈对于华为MateX卷屏机型的期待。近日,荷兰科技博客LetsGoDigital将之前曝光的华为卷屏智能机专利图3D渲染了出来对标骁龙898!曝天玑2000年底出货台积电4nm功耗超稳近段时间,网络上浮现出了不少关于高通下一代平台骁龙898的相关信息,该芯片相比于当前市面最强的骁龙888系列更进一步,并且采用了跟先进的4nm工艺打造,整体性能和体验都会更上一层楼重拳整治!腾讯网易躺赚的日子到头了文覃毅编辑钟黛新规靴子落地,游戏产业进入防止未成年沉迷时代。8月30日下午,国家新闻出版署下发游戏防沉迷通知所有网络游戏企业仅可在周五周六周日和法定节假日向未成年人提供1小时服务,一旦马斯克的星链(Starlink)计划完成,是不是地面的发射塔就都没有用了?若干年前,马斯克在做垂直回收火箭的时候,强国的键盘侠也是在那儿像狗一样狂吠。然而现在强国也开始觉得垂直回收真香了。推航天资讯,普天文知识大家好,SpaceX将在11月11日在弗罗里医生有了AI助手智慧医疗乘云而上来源经济日报作为贵州本土互联网企业,贵阳朗玛信息技术股份有限公司紧紧抓住贵州发展大数据的东风,于2015年形成线上网站线下医院的互联网医疗布局,有力提升了优质医疗资源的效率,降低了云计算核心技术Docker教程Docker使用网桥网络点击右上角加关注,全国产经信息不错过就网络而言,网桥网络是在网段之间转发流量的链路层设备。网桥可以是在主机内核中运行的硬件设备或软件设备。就Docker而言,网桥网络使用软件网桥,我的华为之路,实贴我接触华为应该是比较早的,12年我就第一次用华为手机,什么型号真的忘了时间太久了,还记得当时是2G网络,那时候在玩一款忘仙的手游,不知道有没有知道的,当时很火,想想我居然能有2G玩英特尔新处理器部分交由台积电代工据我国台湾中时新闻网5月29日报道,英特尔首席执行官基辛格(PatGelsinger)日前出席摩根大通会议时指出,英特尔7纳米制程MeteorLake处理器计算区块(compute
你能忍受的最长手机充电时间是多长?是两个小时因电池板暴费了充电续度漫只能等待。我忍受最长手机充电时间是。腄觉自然醒了。四五个小时是正常。现代化建设中国特色社会主义国家高质量。高科技产品华为手机非常安全保质保量。靓妹住友化学研发出智能手机屏幕内嵌入式透明5G天线技术CINNOResearch产业资讯,住友化学研发出智能手机显示屏内嵌入式透明5G天线技术。并将制成透明天线的薄膜作为显示屏组件进行供货。该技术通过接收从手机正面到达的无线电波,从而威联通TS551搭配东芝NAS硬盘MN系列搭建家庭媒体中心体验分享创作声明原创分享,拒绝搬运转载前言大家好,我是Karl,一个电脑数码爱好者,喜欢打游戏按快门看小姐姐,喜欢看文档写文档和分享。作为一个数码爱好者,我在役的有一个台式机两个笔记本一个小米平板5pro的简单上手体验我前几天就去实体店体验过小米平板5pro,趁周末有空就写一篇个人体验。因为不是专业人士,写得不好,只给想买的网友们做个参考。第一感觉边框稍宽,手感质感还不错。我上手体验了一下系统还亚马逊封号潮后清库存广告扎堆朋友圈,大卖低价清仓图片来源图虫创意编者按今年4月开始,亚马逊掀起一场旷日持久的封号潮,截至目前为止,已有超5万卖家受影响。在外界普遍看好跨境出口电商,大量线下实体品牌外贸工厂淘系品牌涌入的同时,曾经想给男朋友买一个笔记本电脑,我也不是很懂,大家有什么推荐嘛?选择笔记本电脑首先要确定使用需求和预算,有需求和预算才好推荐哦。一选购笔记本电脑常见问题1,品牌选择在品牌售后方面,联想惠普戴尔华硕等老牌电脑品牌会更具优势。神舟主打性价比,在售后外星生命不一定是人,而可能是高等智慧生物,你怎么看?外星生命不一定是人,这是肯定正确的,人只是地球上才有的生物类型,因为人是根据地球大气环境主要构成成分引力场等环境因素形成的,人适合地球上生存。外星生命可能是高等智慧生物,也可能是低投诉数据告诉你,大数据杀熟有哪些套路?来源读特人工智能正像电力一般赋能各个产业,深刻地改变人类社会。中国正处于全球人工智能发展第三次浪潮的时代潮头,算法周刊将聚焦人工智能上海高地和中国新基建,并持续关注全球AI最前沿。他高中毕业,从快递员变成老板,拿5亿开公司,却因为5毛钱被痛骂2016年4月,一名顺丰快递员在北京富贵园和往常一样骑着三轮车来来回回送快递,结果不小心和小区内一辆现代轿车剐上了。车主气愤地从车上冲下来,不由分说对着顺丰小哥又骂又打,前前后后扇马斯克狗狗币是在支付方面最强的加密货币8月14日,特斯拉CEO埃隆马斯克再次强调,狗狗币以比其他加密货币更好的方式实现了支付手段的属性。他在推特中对同为亿万富翁的MarkCuban的观点表示赞同。Cuban最近在接受C定位SUV,但酷似MPV,空间还超大,10。46万起售,AIONY如何?全民说车汽车内容创作季说到广汽埃安,作为广汽新能源旗下的独立品牌,旗下的产品定位也是主打家用车系列。埃安自从独立出来之后,它的势头也是一直不错,在销量榜单上也常能见到其产品的身影,