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

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.mzph.cn/diannao/13617.shtml

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

相关文章

LLMPerf-为LLM提供可重现的性能指标

LLMPerf-为LLM推理提供可复现的性能指标 翻译自文章:Reproducible Performance Metrics for LLM inference 结合之前的LLMPerf测试大模型API性能的文章进行查看,效果更佳。 1. 摘要 我们见过许多关于LLM性能的声明;然而,这些声明往…

Android面试题之Kotlin泛型和reified关键字

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 //泛型 class MagicBox<T>(item:T){var available falseprivate var subject:T itemfun fetch() : T? {return subject.takeIf { avai…

Ubuntu彻底卸载Nginx

停止Nginx服务 sudo systemctl stop nginx卸载Nginx软件包 sudo apt purge nginx nginx-common nginx-core清除配置文件和依赖项 清除Nginx的配置文件 sudo rm -rf /etc/nginx清除Nginx安装的依赖项 sudo apt autoremove清除相关文件和目录 删除Nginx的日志文件 sudo rm…

配置旁挂二层组网直接转发示例(命令行)

业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。 组网需求 AC组网方式&#xff1a;旁挂二层组网。DHCP部署方式&#xff1a; AC作为DHCP服务器为AP分配IP地址。汇聚交换机SwitchB作…

深度学习基础之《TensorFlow框架(18)—卷积神经网络(2)》

一、卷积层 1、卷积层&#xff08;Convolutional Layer&#xff09;介绍 卷积神经网络中每层卷积层由若干卷积单元&#xff08;卷积核&#xff09;组成&#xff0c;每个卷积单元的参数都是通过反向传播算法最佳化得到的 卷积运算的目的是特征提取&#xff0c;第一层卷积层可能…

Gradle和Maven项目解决Spring Boot Configuration Annotation Processor not configured警告

问题描述 写了一个配置类,加了注解@ConfigurationProperties(prefix = “xxx”) 后一直报警告:Spring Boot Configuration Annotation Processor not configured 意思是 Spring boot 未配置注解处理器 解决过程 出现这个问题后,百度查了解决方式 1.maven项目 maven项目是…

学习前端第四十四天(浏览器事件简介)

一、事件处理程序 对事件作出响应&#xff0c;可以分配一个 处理程序 &#xff0c; 一个在事件发生时运行的函数 1、HTML特性绑定事件处理函数 <button id"btn1" οnclick"fn();console.log(xc)">保存1</button> 2、DOM属性绑定事件处理函数…

纯软件双机热备

在信息化高速发展的今天&#xff0c;企业对于业务连续性的需求愈发强烈。无论哪个行业&#xff0c;系统的稳定运行都至关重要。为了确保系统的高可用性和业务连续性&#xff0c;纯软件双机热备技术应运而生&#xff0c;成为了企业IT架构中的关键一环。 双机热备软件下载 …

04信号量

如果有两个或者两个以上的任务(进程 / 线程&#xff0c;并发的实体)&#xff0c;去访问一个共享资源(硬件上面的&#xff0c;软件上的)。我们必须要保证这个共享资源的有序访问&#xff0c;否则会产生不可预知的后果 例子: very_important_i 5; // 共享资源 fun(…

vue3父组件使用ref获取子组件的属性和方法

在vue3中父组件访问子组件中的属性和方法是需要借助于ref: 1.<script setup> 中定义响应式变量 例如&#xff1a; const demo1 ref(null) 2.在引入的子组件标签上绑定ref属性的值与定义的响应式变量同名( <demo1 ref"demo1"/>)。 父组件代码如下&…

cPanel中如何进行网站质量检测

最近我在维护网站的时候需要查看网站质量如何&#xff0c;我使用的是Hostease的主机安装的WordPress网站&#xff0c;随后在咨询了他们的技术支持后获得了方法。 当您在cPanel中部署了网站后&#xff0c;确保网站的质量和性能是至关重要的。cPanel提供了一个便捷的功能Site Qu…

Postman进阶功能-Mock服务与监控

大家好&#xff0c;前面跟大家分享一些关于 Postman 的进阶功能&#xff0c;当我们深入探索 Postman 的进阶功能时&#xff0c;Mock 服务与监控这两个重要方面便跃然眼前。 首先&#xff0c;Mock 服务为我们提供了一种灵活便捷的方式&#xff0c;让我们在某些实际接口尚未准备好…

18.SpringCloud Gateway

简介 SpringCloud Gateway是spingcloud家族的产品&#xff0c;使用netty实现的高性能服务网关&#xff0c;用于替换netflix公司的zuul网关实现。 参考地址&#xff1a; https://spring.io/projects/spring-cloud 术语 工作原理 Route Predicate Factories GatewayFilte…

科大讯飞笔试题---字符串切割

1、 题目描述 小红拿到了一个字符串&#xff0c;她希望你帮她切割成若干子串&#xff0c;满足以下两个条件&#xff1a; 子串长度均为不小于 3 的奇数。 子串内部的字符全部相同。 输入 第一行输入一个正整数n&#xff0c;代表字符串长度。第二行输入一个字符串&#xff0c;仅…

前端基础入门三大核心之HTML篇:解密标签、标题与段落的艺术

前端基础入门三大核心之HTML篇&#xff1a;解密标签、标题与段落的艺术 一、HTML标签&#xff1a;网页元素的建筑砖石1.1 HTML标签的基本概念1.2 基础标签示例自闭合标签示例&#xff1a;图片标签 1.3 实战应用&#xff1a;使用<meta>标签优化网页 二、标题标签&#xff…

运行时间比较

subprocess.run() 函数参数的含义&#xff1a; shell_command&#xff1a;这是要执行的命令。它可以是一个字符串&#xff0c;也可以是一个包含命令和参数的列表。例如&#xff0c;“ls -l” 或 [“ls”, “-l”]。shellTrue&#xff1a;这是一个布尔值参数&#xff0c;指示是…

新一代分布式链路追踪skywalking编码实战教程(下)

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

PostgresSQL开启归档模式

文章目录 一、查询数据库归档是否开启1、查看数据目录(找出conf文件位置)2、查看归档是否开启 二、开启归档模式&#xff08;开启后有一定的性能损耗&#xff09;1、创建归档目录2、修改postgresql.conf配置文件3、重启pg 三、验证归档情况1、查看归档是否开启2、检查点 , 刷新…

利用远控工具横向

一.横向移动介绍和方式 1.介绍 内网渗透的横向移动是指攻击者在成功进入内网后&#xff0c;通过利用内部系统的漏洞或者获取的合法访问权限&#xff0c;从一个受感染的系统向其他系统扩散或移动。这种横向移动的目的通常是为了获取更多的敏感信息、提升权限、扩大攻击面或者更…

【蓝桥杯】

题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int a,b,c,d; void solve() {char op;std::cin>>op;if(opA){std::string s;for(int i1;i&l…