mysql事物隔离级别和MVCC
sql四种事物隔离级别READ UNCOMMITTED 读未提交 READE COMMITTED 已提交读 REPEATABLE READ 可重复读 SERIALIZABLE 可串行化 事物并发执行是会遇到的一致性问题脏写
如果一个事物修改了另一个未提交事物修改过的数据,就是发生了脏写 脏读
如果一个事物读取到了另一个事物修改的未提交的数据,就是发生了脏读 不可重复读
如果一个事物多次读取一个数据之间另一个事物修改了该数据,读取的数据不一致,则说明不可重复读 幻读
如果一个事物先根据一个条件查询一些数据,在该事物进行时,另一个事物写入了一些符合那个条件的记录,再次读取时查询到的数据量变了,就意味着发生了幻读现象 各事物隔离级别下并发事物会发生的现象
事物隔离级别
脏读
不可重复读
幻读
READ UNCOMMITTED
可能
可能
可能
READE COMMITTED
不可能
可能
可能
REPEATABLE READ
不可能
不可能
可能
SERIALIZABLE
不可能
不可能
不可能 MVCC多版本控制原理版本链
mysql再使用InnoDB存储引擎时,它的聚簇索引记录都会包含两个隐藏列: try_id: 一个事物在对某条聚簇索引记录改动时,都会把事物id赋值给trx_id roll_pointer: 每次对聚簇索引记录改动时,都会把旧版本写入到undo日志中。roll_pointer就是该记录修改前的记录地址
通过最新记录可以找到旧的值,所有的版本值通过roll_pointer连在一起形成了一个链表,链表头节点就是最新的记录。 ReadeView
因为READE COMMITTED 和 REPEATABLE READ 的事物隔离级别下都要保证读到已提交的事物修改的记录。要怎么才能确定哪些数据才是当前事物应该读取的数据呢?InnoDB通过Readview来解决这个问题,Readview主要包含下面几个内容 m_ids: 生成Readview 时当前系统中活跃的读写事物的事物id列表 min_trx_id: 生成ReadView时,当前系统中读写事物id最小的,也就是m_ids中最小的 max_trx_id: 生成ReadView时,系统会分配给下一个事物的事物id creator_trx_id: 生成该ReadView的事物id
有了ReadView就可以判断某条记录是否可以被当前事物可见,有如下判断逻辑 当前数据的trx_id == creator_trx_id 说明这条数据被当前事物修改的,所以是可以访问的。 当前数据的trx_id >= creator_trx_id 说明该数据的事物是ReadView生成后才生成的,所以不可被访问 当前数据的trx_id < creator_trx_id 说名该数据在ReadView前就已经提交,所以是可以被访问的 如果当前数据介于最大值和最小值之间,则需要判断是否在m_ids中,如果在,说明在生成ReadView时该数据的事物还是活跃的,说明不可被访问;如果不在,说明在生成ReadView时该数据的事物已经提交了,说明可以被访问。
如果某个版本的数据不可以被当前事物访问,这是就用到版本链了,通过该版本的roll_pointer找到下一条记录,重复以上记录,直到找到可被当前事物访问的版本。 Mysql ReadView 的生成时机
mysql的事物隔离级别 READE COMMITTED 与 REPEATABLE READ 最大的区别就在于生成呢个ReadView的时机是不同的 READE COMMITTED 每次读取数据都会生成,所以其他事物提交数据,再次读取就能读到 REPEATABLE READ 第一次读取数据时就生成,所以在第一次数据读取后,无论这期间其他事物怎么修改数据,再次读取都不会有影响。
mysql默认使用REPEATABLE READ,多版本控制可以解决一部分幻读。原因是只能确保当前事物读取的数据是正确的,不能保证当前事物修改其他事物已提交的数据,如果修改了该记录再次读取就能读取到数据(通过加锁可以解决,不过性能有所所影响)。
被官媒封杀47天后,这群最拜金的网红,又死灰复燃01hr被人民日报点名,是一种什么样的体验?答案就是,在抖音搜大LOGO,不仅会出现其本人,还有平台提示理性消费,这就是排面,爆赞!截猾削晨惶检奸儿等褥久类品扬引徐银列怂酒逛馋皮乎
kotlin访问者设计模式访问者模式是一个相对比较简单,但结构又稍显复杂的模式,它讲的是表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。例如,你在朋
请在未成年陪同下观看!时隔38年经典回归作为8090后的你,童年记忆里有哪些让你印象深刻的国产动画电影呢?除了大闹天宫阿凡提哪吒闹海这些经典好片,自然也少不了天书奇谭这部老少咸宜雅俗共赏的佳作。近日据媒体报道,由上海美术
这13项汽车黑科技,是噱头还是未来?一直以来,黑科技都是人们热议的话题之一,近几年来,黑科技产品更是不断进入我们的生活,如,ARVR眼镜智能家居AR特效智能识别等都在为我们的生活提供帮助。在汽车领域,越来越多的黑科技
10年以上互联网工作者告诉你网络赚钱的方法互联网靠着一根网线连接着整个世界,只要有一台可以上网的设备,随时可以跟全世界的那个她通话,浏览整个服务器,全世界的信息,原本线下的所有数据,都可以通过互联网来进行通信。1互联网到底
iPhone又是全球最受欢迎手机,无敌是多么寂寞根据第三方统计公司的数据显示,2020年第一季度,iPhone11成为最受欢迎的手机。在第一季度的三个月时间里,iPhone11总共卖出1950万部,是第二名三星A51680万部销
合肥与蔚来故事的背后一座伪装成投资机构的城市要说中国最大的赌城在哪里?可能很多人第一反应是澳门。但是我要说是合肥。而且不止我一个人这么说,很多媒体都这么说。特别是去年在蔚来股价屡屡攀登高峰时,赌城这一称号被各大媒体用来形容合
带来双倍的美食快乐,体验烧烤蒸煮皆可的适盒IH双头聚嗨炉老家在桂北,冬天比较冷,逢年过节必打火锅,电磁炉几乎是每家必备。在南宁生活后,天气比较热很少在家打火锅。因为使用率低,平时还占地方,几年前家里的电磁炉坏了就再也没买。不过,当我看到
IBM放弃人脸识别?事情没那么简单近日,IBM宣布退出人脸识别业务,引起了业界的一番热议。IBM的CEO还给美国国会写了一封信,信里面是这么说的IBM坚决反对,同时也不会容忍,使用包括人脸识别在内的任何技术来监控大
自拍直发朋友圈是什么体验?我用vivoS9来带你了解当代年轻人在选择产品时,颜值绝对是首位,买任何东西都是首先看外表,再看实用性,毕竟漂亮的东西,谁不喜欢呢?vivo最新发布的vivoS9就受到了众多年轻人的欢迎,既能作为颜值担当,
nova7和iphoneSE,你会怎么选iPhone第二代SE出来后,它的广告词叫新iPhoneSE,一点一点说。有点硬核,有点超值,有点容易种草曾经引领潮流的iPhone,新产品竟然没什么技术上的亮点,只能靠性价比去做
华为正式推出openEuler服务器操作系统自己不做商业版3月27日,在线上举办的华为开发者大会HDC2020上,华为正式推出了openEuler20。03LTS版本,任何伙伴均可免费获取LTS版本并商业化。华为CloudAIBG总裁侯金
继鸿蒙系统后,华为大量注册鸿系列商标众所周知,鸿蒙是华为公司发布的一个操作系统。自2019年第一次出现在我们面前,两年时间里鸿蒙系统用户数量已经突破一亿大关,占到了全球5左右的操作系统市场份额。根据华为官方计划,预计
魅蓝要回来了?魅族扩展魅蓝商标类别2014年,魅族正式发布了旗下的子品牌魅蓝。随后陆续推出了魅蓝品牌的相关产品。魅蓝以QualityForYoung(青年良品)为品牌内核,很快便收获了大量的用户关注,得到了不错的销
4K高清OPPOK9智能电视,带你和家人其乐融融观影现在大家还是一人一台手机玩自己的,没有丝毫的交流!怎么回事,赶快打开这些4K高清智能电视吸引大伙的注意呀,看同一部电视剧,又说有笑,有评有论的,好不开心,其乐融融才是一家人的面貌!
手机慢速度快门平移跟拍高清图片8月3日晚上八点练习慢速度快门平移跟拍尝试用高清画质拍摄照片如附图分享ISO2626,S117,图片有13。6MBISO1798,S120,图片有16。2MBISO1414,S11
手机慢速度快门平移跟拍设定高清画质8月15日拍摄16秒平移跟拍后拍摄高清画质平移跟拍照片分享如附图,感觉是否清晰一些。f1。8,ISO1237,S117s,13。8MBf1。8,ISO1293,S117s,14。6
手机慢速度快门平移跟拍高清图片8月8日晚上八点半左右继续拍摄平移跟拍用专业模式的高清画质拍摄,照片分享如附图ISO1552,S120s,15。1MBISO1507,S120s,14。8MBISO1444,S12
两张抓拍图片比较9月6日晚上八点半拍摄完路口抓拍回到小区楼下广场,有一群大爷大妈在跳舞吧!拿起手机不客气就抓拍一张超清画质的照片感觉不满意,改用专业调整ISO与快门速度,我比较喜欢手动设定的曝光充
66元一支的钟薛高,知识产权保护如何?近日,钟薛高雪糕最贵一支66元登上热搜,被称为雪糕界的爱马仕,网友表示是它太贵还是我不配?钟薛高是一家创立于2018年的中式雪糕品牌,以独特的瓦片形状,体现美美的中国风,短时间内迅
拿下字节汽车商标,字节也要造车?近日,字节跳动以内部转让的方式拿下了字节汽车的商标,国际分类包含了42类设计研究38类通讯服务9类科学仪器等。此消息一出,一时间引发热议,难道互联网造车的巨头们真的这么热衷于造车?
腾讯微视商标保卫战,历时1年半,腾讯胜诉众所周知,腾讯微视是腾讯旗下短视频创作平台与分享社区,大家都习惯于简称为微视。为保护品牌发展,腾讯公司于2018年曾申请了腾讯微视腾讯微视相机腾讯微视智能眼镜等商标,注册在第9类科