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

带你轻松理解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 得到相同的结果.

机构称苹果ARMR头显或将推迟至2023年第一季度发布北京商报讯(记者金朝力王柱力)4月13日,海通国际证券分析师JeffPu表示,苹果ARMR头显可能会在2023年第一季度发布,略微延期。新款ARMR头显第一年销量将在100万150觅睿科技将登新三板生产智能摄像机年利润5600万元7名高管来自海康威视挖贝网4月13日消息,杭州觅睿科技股份有限公司(简称觅睿科技)已收到全国股转公司同意挂牌函,即将登陆新三板。资料显示,创办于2017年的觅睿科技,是一家生产家用智能摄像机的公司,2华为之后,再一个强势企业诞生!敢问苹果怕不怕文红豆这些年来,随着美国修改世界半导体行业规则,华为手机业务受影响非常大,5G旗舰已经出现断代,主要原因就在于先进制程工艺芯片断供,而华为一直在努力解决芯片问题,尤其是高性能芯片。2021北京软件和信息技术服务综合实力企业(六十六)北京东方通科技股份有限公司企业简介东方通创立于1992年,于2014年登陆创业板(股票代码300379),是国产中间件软件的开拓者和领导者,是国内领先的大安全领域解决方案提供商。东方通承担了多项国家重大科技拔掉电话卡关机飞行模式行程卡后,还能记录活动轨迹吗?拔掉电话卡关机飞行模式行程卡后,还能记录活动轨迹吗?有些人怕麻烦。为了不让他们的行程码成为明星,拔掉电话卡关掉手机有用吗?行程卡记录的活动轨迹是通过手机定位实现的,那么手机实现定位如何挑选一款经久耐用的智能马桶认准这3点不会买错相比起早期产品,如今的智能马桶无论在外观还是功能上都有了长足的进步,能够迎合更大范围的受众需求。如果你还没来得及体验智能马桶的便利,同时想赶在今年入手人生第一台智能马桶的话,这三点大宇无叶风扇怎么样,大宇无叶风扇值得购买吗外观非常漂亮,占地空间小,气流平稳风力柔和并有多速可调,同时超静音,可遥控非常安全,开启睡眠模式搭配定时,伴随着柔风,整晚酣睡,再也不会有睡到半夜就满身大汗的糟糕体验。整体造型很简vivoX80Pro规模性备货,天玑9000作为支撑,硬件升级很大关注vivo这个品牌的朋友就知道,最近vivo上线了两款顶尖产品,也就是主打大屏和折叠屏的产品,例如vivoXNote,这是vivo首款7英寸大屏旗舰,并且具备很好的续航快充处理器原神征服者红魔7Pro周周抽送,红魔品牌四周年福利满满4月12日,2022年红魔寻游记城市票选投票通道正式开启。根据红魔游戏手机官方发布的微博了解,此次投票活动将持续到4月30日,在此期间,魔豆们可以进入投票通道,选择自己喜欢的城市进后置一亿像素的vivoS12,拍照真的好看,值得入手一直想买一款拍照比较好的手机,在同事的强烈推荐下,我选择了vivoS12,自从我用了一个月以后感觉还是不错的,不管是做工还是系统的人性化方面,都不亚于其他的品牌。s12这款手机非常工信部培育一批高质量工业APP发展工业APP商店中新财经4月13日电工信部13日发布关于印发工业互联网专项工作组2022年工作计划的通知,通知提出,培育一批工业APP,发展工业APP商店,促进工业APP交易流转。实现工业APP云
杨幂代言,操控散热续航都到天花板的realmeGTNeo2真不简单realme这节奏快得有点吓人啊,堪比当年月月开演唱会的魅蓝啊。没错!realme又又又发布手机了,realme今天正式官宣了主打游戏的realmeGTNeo2,将于9月22日发布今年鸿蒙系统搭载量计划从3亿增加到4亿,这1亿说增就增?在西方持续的打压下,华为研发出了属于自己的系统,取名鸿蒙OS。早在2019年开始,华为就传出了鸿蒙的消息,并表态称三年内将正式推出鸿蒙系统。到如今,华为也兑现了当年的话。不过鸿蒙问这家中国企业1个月造299亿颗芯片,缺芯问题有望缓解?芯片是目前各种电子产品必要的组件之一,大到航空航天,小到手表遥控器,都需要那么一块小小的芯片。而谈到芯片问题,让人最头痛的就是光刻机,都知道目前我国是没有自主研发光刻机的能力的。故媲美华为P50,真我GTNeo2黑薄荷配色再次引领手机行业的设计潮流从realme诞生之日起,realme就肩负着OPPO家族性价比的重担。那做性价比手机就意味着要使用公模,要使用行业里千篇一律的设计吗?realme说我偏偏不。众所周知,realm坚决不向中国低头的董事长退休后12天,铃木汽车彻底离开中国今年3月1日,汽车行业乃至全球知名商业品牌中年纪最大的董事长,91岁的铃木修提出了退休。至此,一个属于这位倔强老头的小车时代也画上了句号。据天眼查信息显示,重庆长安铃木汽车有限公司91十条新能源汽车行业简报2026年大众推最后一款内燃机1大众汽车近日表示,公司将停止新型内燃机发动机。最后一款发动机将在2026年下线,2040年完成全生命周期。2美国方舟投资公司ArkInvest预测到2025年,特斯拉的年收入将达汽车进入智联时代,买发动机送车的本田以技术CONNECT未来技术,几乎成为了本田的代名词,甚至有很多车友调侃说其实买发动机送车。虽然这只是一句调侃,但是从中我们也可以一窥大家对本田技术的认可。据Interbrand公布的2020年全球品牌价特斯拉刹不住撞护栏,售后试验复现事故,官方检测称刹车合格一年来,关于特斯拉刹车失灵的新闻屡见不鲜,但官方口径始终称系车主误操作。不过近日一段网上流传的视频疑似实锤了特斯拉的刹车问题。据报道,3月11日,海口的一位蒙先生在驾驶特斯拉停车时91十条新能源汽车行业简报产销再创记录,同比增长5。8倍1比亚迪宋PLUSDMi将于3月25日正式上市,新车将搭载DMi超级混动系统,亏电油耗仅4。4L100km,此前公布的预售价为15。3817。58万元。2因全球半导体芯片短缺,沃尔从保时捷单车利润率近3倍于大众,看奔驰到底坑不坑穷人?在中文互联网上,关于奔驰不坑穷人的笑谈俯拾皆是。事实上,如果我们去看一下奔驰的单车利润率,会发现其实奔驰在赚钱效率上其实不仅不如宝马,甚至还低于奥迪。在一份2019年的报告中,奔驰91十条新能源汽车行业每日必读简报(210315)1据知情人士透露,北汽新能源的常州工厂可能会被收购,收购者就是前华为CTO李一男创立的小牛电动车。此举意味着小牛也可能进军四轮电动车市场。2吉利汽车与赣州市人民政府赣州经开区管委会