【MySQL精通之路】InnoDB(6)-磁盘结构(6)-Undolog

news/2024/7/22 0:34:03/文章来源:https://blog.csdn.net/qq_29519041/article/details/139075822

1.介绍

Undolog是与单个读写事务相关联的Undolog记录的集合。

Undolog包含有关如何撤消事务对聚集索引记录最新更改的信息。如果另一个事务需要将查看一致性读的一部分原始数据,则会从Undolog记录中检索未修改的数据。

2.结构

Undolog记录存在于Undolog段

Undolog段存在于回滚段

回滚段存在于Undo表空间和全局临时表空间中。

位于全局临时表空间中的Undolog用于修改用户定义的临时表中的数据的事务。

这些Undo记录不会被重新记录,因为它们不是崩溃恢复所必需的。

它们仅用于服务器运行时的回滚。这种类型的undo日志避免了redo日志I/O,从而提高了性能。

有关undolog的静态数据加密的信息,请参阅undolog加密。

2.1 回滚段和Undo槽(rollback segments和slots)

每个undo表空间全局临时表空间分别支持最多128个回滚段

innodb_rollback_segments变量定义回滚段的数量。

回滚段支持的事务数取决于回滚段中撤消槽的数量以及每个事务所需的Undo日志的数量。

回滚段中撤消槽的数量因InnoDB页面大小而异。

InnoDB 页大小回滚段中的Undo槽数量 (InnoDB页大小 / 16)
4096 (4KB)256
8192 (8KB)512
16384 (16KB)1024
32768 (32KB)2048
65536 (64KB)4096

3.类型

一个事务最多分配四个Undolog,以下操作类型各分配一个:

对用户定义表的INSERT操作

对用户定义的表执行UPDATEDELETE操作

对用户定义的临时表执行INSERT操作

对用户定义的临时表执行UPDATEDELETE操作

根据需要分配Undolog。

例如,对常规表和临时表执行INSERT、UPDATE和DELETE操作的事务需要完全分配四个Undolog。只对常规表执行INSERT操作的事务需要一个Undolog。

对常规表执行操作的事务从分配的Undolog表空间回滚段分配Undolog。对临时表执行操作的事务从分配的全局临时表空间回滚段分Undolog。

分配给事务的Undolog在其持续时间内保持附加到事务。

例如,为常规表上的INSERT操作分配给事务的Undolog将用于该事务在常规表上执行的所有INSERT操作

考虑到上述因素,以下公式可用于估计InnoDB能够支持的并发读写事务的数量。

注意:
在达到InnoDB能够支持的并发读写事务数量之前,可能会遇到并发事务限制错误。

当分配给事务的回滚段用完Undo槽时,就会发生这种情况。

在这种情况下,请尝试重新运行事务。

当事务对临时表执行操作时,InnoDB能够支持的并发读写事务的数量受到分配给全局临时表空间的回滚段数量的限制,默认为128

如果每个事务执行INSERT或UPDATE或DELETE操作,InnoDB能够支持的并发读写事务数为:

(innodb_page_size / 16) * innodb_rollback_segments * number of undo tablespaces

如果每个事务执行INSERT和UPDATE或DELETE操作,InnoDB能够支持的并发读写事务数为:

(innodb_page_size / 16 / 2) * innodb_rollback_segments * number of undo tablespaces

如果每个事务对一个临时表执行INSERT操作,那么InnoDB能够支持的并发读写事务数为:

(innodb_page_size / 16) * innodb_rollback_segments

如果每个事务对临时表执行INSERT和UPDATE或DELETE操作,InnoDB能够支持的并发读写事务数为:

(innodb_page_size / 16 / 2) * innodb_rollback_segments

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1053500.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三十、openlayers官网示例解析Double click, Drag and Zoom——第二次点击鼠标拖拽缩放地图效果、取消地图双击放大事件

这篇展示了如何在地图上添加第二次按下鼠标移动鼠标实现拖拽缩放地图效果。 官网demo地址: Double click, Drag and Zoom 官网介绍文字的翻译如下: 示例比较简单,直接贴代码: const map new Map({//添加第二次点击拖拽缩放地图i…

这样问问题, 客户才会下单!

和供应商沟通时,提问方式至关重要。如何提问是外贸交流的关键,而针对客户的合适提问更是促成交易的秘诀。前不久, 我有一个客户想要一个不属于我们行业的新品, 于是我准备去阿里巴巴找找供应商。但因为我对该领域并不了解&#xf…

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…

redis核心面试题一(架构原理+RDB+AOF)

文章目录 0. redis与mysql区别1. redis是单线程架构还是多线程架构2. redis单线程为什么这么快3. redis过期key删除策略4. redis主从复制架构原理5. redis哨兵模式架构原理6. redis高可用集群架构原理7. redis持久化之RDB8. redis持久化之AOF9. redis持久化之混合持久化 0. red…

v-rep---script-function

作用,实现,参数讲解。 script-function标签 作用 问题:如何在插件的接口中调用lua脚本中定义的函数? 用于声明一个函数,这个函数的作用是通过v-rep提供的接口sim::callScriptFunctionEx()调用脚本的函数&#xff0…

系统开发与运行知识

系统开发与运行知识 导航 文章目录 系统开发与运行知识导航一、软件工程二、软件生命周期三、开发模型四、开发方法五、需求分析结构化分析 六、数据流图分层数据流图的画法设计注意事项 七、数据字典数据字典的内容 八、系统设计九、结构化设计常用工具十、面向对象十一、UML…

【SQL学习进阶】从入门到高级应用(二)

文章目录 简单查询查一个字段查多个字段查所有字段查询时字段可参与数学运算查询时字段可起别名as关键字省略as关键字别名中有空格别名中有中文 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博客,很高兴能够在这里和您见面&#xf…

2024年4月—马克思主义基本原理概论真题及答案解析(上海自考)

目录 1.选择题 2.简答题 3.论述题 1.选择题 2.简答题

7.Redis之String编码方式应用场景业务

1.内部编码 字符串类型的内部编码有 3 种: • int:8 个字节(64位)的⻓整型。 • embstr:⼩于等于 39 个字节的字符串。压缩字符串.适用于表示比较短的字符串。 • raw:⼤于 39 个字节的字符串。普通字…

【软件工程】【23.04】p1

关键字: 软件模型、提炼、加工表达工具、通信内聚、访问依赖、边界类交互分析、RUP核心工作流、首先测试数据流、软件验证过程、CMMI过程域分类工程类; 软件工程目的、功能需求是需求的主体、结构化方法、耦合、详细设计工具、类、类图、RUP采用用例技…

三十一、openlayers官网示例Draw Features解析——在地图上自定义绘制点、线、多边形、圆形并获取图形数据

官网demo地址: Draw Features 先初始化地图,准备一个空的矢量图层,用于显示绘制的图形。 initLayers() {const raster new TileLayer({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/…

软件性能测试有哪些测试类型和方法?

软件性能测试是一种通过模拟真实用户使用情况,评估软件系统在各种压力和负载下的表现的测试方法。在今天这个讲究效率的时代,软件性能测试是不可或缺的一环。它能帮助开发人员和企业发现潜在的性能问题,提前优化改进,保证软件系统…

Xinstall助力实现App间直接跳转,提升用户体验

在移动互联网时代,App已成为我们日常生活中不可或缺的一部分。然而,在使用各类App时,我们经常会遇到需要在不同App之间切换的情况,这时如果能够直接跳转,将会大大提升用户体验。而Xinstall正是这样一款能够帮助开发者实…

设计模式19——观察者模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 观察者模式(Observ…

LearnOpenGL(二十)之立方体贴图

一、创建立方体贴图 首先,生成一个纹理,并将其绑定到纹理目标GL_TEXTURE_CUBE_MAP: unsigned int textureID; glGenTextures(1, &textureID); glBindTexture(GL_TEXTURE_CUBE_MAP, textureID); 因为立方体贴图包含有6个纹理&#xff0…

MySQL select for update 加锁

背景 当多人操作同一个客户下账号的时候,希望顺序执行,某个时刻只有一个人在操作;当然可以通过引入redis这种中间件实现,但考虑到并发不会很多,所以不想再引入别的中间件。 表结构 create table jiankunking_accoun…

光伏智慧化运营解决方案的应用和价值

在社会对新能源需求的不断扩大,光伏已经成为了可再生能源的重要组成部分,随着光伏电站数量和规模的不断扩大,相关企业和用户都就开始关注如何能够高效精准的进行电站管理,对此,鹧鸪云提出了光伏智慧化运营解决方案&…

短视频内容创意方法有哪些?成都科成博通文化传媒公司

短视频内容创意方法有哪些? 随着移动互联网的迅猛发展,短视频平台已成为人们日常生活中不可或缺的一部分。短视频以其短平快的特点,迅速吸引了大量用户。然而,面对海量的短视频内容,如何让自己的作品脱颖而出&#xf…

极验3逆向 JS逆向最新点选验证码 逆向分析详解

目录 声明! 一、请求流程分析 二、w参数生成位置 三、主要问题 四、结果展示 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 声明! 本文章中所有内容仅供学习交流…

SEO之核心关键词(二)

初创企业或者需要建站的朋友看以下两篇文章,谢谢支持: 我给不会敲代码又想搭建网站的人建议新手上云 (接上一篇。。。。) 4、查询搜索次数 经过自己及朋友、同事的头脑风暴和检查竞争对手网站之后,再到Google 关键词…