Innodb事务的实现

事务的实现

MySQL在进行事务处理的时候采用了日志先行的方式来保证事务可快速和持久运行,在写数据之前,先写日志,开始事务时,会记录该事务的一个LSN日志序列号;当执行事务时,会往Innodb_log_buffer日志缓冲区中插入事务日志(redo log);当事务提交时,会将日志缓冲区里的事务刷入磁盘,由innodb_flush_log_at_trx_commit参数进行控制何时刷入磁盘

  • 0 延迟写 事务提交时不会将redo log buffer中日志写入到os buffer中,而是每秒写入os buffer并调用fsync()写入到redo log file中,如果系统崩溃,将丢失1秒的数据,性能最好,但是安全性最差
  • 1 实时写,实时刷 事务每次提交都会将redo log buffer中的日志写入到os buffer并调用fsync()刷到redo log file中,虽然不会丢失数据,但是每次都写入磁盘,IO性能较差
  • 2 实时写,延迟刷 每次提交将redo log buffer中的日志写入os buffer,但是每秒调用一次fsync()将os buffer中的日志写入到redo log file中

除了记录事务日志redo log外,还会记录回滚日志undo log,在进行数据修改时,由于某种原因失败了,需要进行回滚操作,可以利用undo log来将数据回滚到修改之前的样子

https://zhhll.icu/2022/数据库/关系型数据库/MySQL/进阶/Innodb/2.事务的实现/

本文由 mdnice 多平台发布

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

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

相关文章

c语言操作符(下)

目录 ​编辑 逗号表达式 下标访问[] 函数调⽤() sizeof 结构成员访问操作符 结构体 结构体声明 直接访问 .成员名 间接访问 结构体指针->成员名 逗号表达式 exp1, exp2, exp3, …expN 运算规则:从左向右依次执⾏。整个表达式的结果是最后⼀个表达…

LInux、源码编译安装

步骤: 步骤1:安装开发工具gcc与make,释放源代码至指定目录 yum -y install gcc make 步骤2:tar解包,释放源代码至指定目录 tar -xf /root/tools.tar.gz -C /usr/local 步骤3:./configure 配置,…

网络编程socket相关操作

Socket socket 打开一个网络连接 int socket (int family , int type ,int protocol)family :协议族 , type : 套接字类型 , protocol :协议类型常值 套接字描述符sockfd famliy : AF_INET(IPv4) AF_INET6(IPv6) AF_LOCAL AF_ROUTE type : SOCK_STREAM(字节流套接字) SOCK_…

第一篇【传奇开心果系列】Python的pyttsx3库技术点案例示例:文本转换语言

传奇开心果短博文系列 系列短博文目录Python的pyttsx3库技术点案例示例系列 短博文目录前言一、pyttsx3主要特点和功能介绍二、pyttsx3文字转语音操作步骤介绍三、多平台支持介绍和示例代码四、多语言支持介绍和示例代码五、自定义语言引擎介绍和示例代码六、调整语速和音量介绍…

Transformer?

Transformer模型是一种深度学习架构,它在2017年由Vaswani等人在论文《Attention is All You Need》中首次提出。这种架构特别适用于处理序列数据,如文本、音频或时间序列数据,因此在自然语言处理(NLP)、语音识别和时序分析等领域有着广泛的应…

姿态传感器MPU6050模块之陀螺仪、加速度计、磁力计

MEMS技术 微机电系统(MEMS, Micro-Electro-Mechanical System),也叫做微电子机械系统、微系统、微机械等,指尺寸在几毫米乃至更小的高科技装置。微机电系统其内部结构一般在微米甚至纳米量级,是一个独立的智能系统。 微…

Win11 Android studio 打开新项目提示 Microsoft Defender configuration 问题解决

Microsoft Defender configuration The IDE has detected Microsoft Defender with Real-Time Protection enabled. It might severely degrade IDE performance. It is recommended to make sure the following paths are added to the Defender folder exclusion list 。。…

[Vue warn]: Duplicate keys detected: ‘1‘. This may cause an update error.

[Vue warn]: Duplicate keys detected: ‘1‘. This may cause an update error.——> Vue报错,key关键字不唯一: 解决办法:修改一下重复的id值!!!

线性回归:大体介绍

线性回归是一种常见的统计学和机器学习方法,用于建立一个线性关系模型来预测一个连续型目标变量。它假设自变量和因变量之间存在线性关系,并且通过最小化预测值与实际观测值之间的差异来确定最佳拟合直线。 线性回归模型可以表示为:Y β0 …

IMX6ULL移植U-Boot 2022.04

目录 目录 1.编译环境以及uboot版本 2.默认编译测试 3.uboot中新增自己的开发板 3.编译测试 4.烧录测试 5.patch文件 1.编译环境以及uboot版本 宿主机Debian12u-boot版本lf_v2022.04 ; git 连接GitHub - nxp-imx/uboot-imx: i.MX U-Boot交叉编译工具gcc-arm-10.3-2021.0…

Excel导入预览与下载

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Excel导入预览与下载 preview Controller PostMapping("preview")ApiOperation("上传拒付预警预览")public Result<List<ResChargebackWa…

CFS三层靶机

参考博客&#xff1a; CFS三层内网靶场渗透记录【详细指南】 - FreeBuf网络安全行业门户 CFS三层靶机搭建及其内网渗透【附靶场环境】 | TeamsSix CFS三层网络环境靶场实战 - PANDA墨森 - 博客园 (cnblogs.com) CFS三层靶机实战--内网横向渗透 - 知乎 (zhihu.com) CFS靶机…

【图论经典题目讲解】洛谷 P2149 Elaxia的路线

P2149 Elaxia的路线 D e s c r i p t i o n \mathrm{Description} Description 给定 n n n 个点&#xff0c; m m m 条边的无向图&#xff0c;求 2 2 2 个点对间最短路的最长公共路径 S o l u t i o n \mathrm{Solution} Solution 最短路有可能不唯一&#xff0c;所以公共路…

使用正点原子i.mx6ull加载字符驱动模块chrdevbase

搞了整整两天才整好&#xff01;踩了不少坑&#xff0c;记录一下 0. 操作基础 操作前需要设置好如下配置 1.开发板和ubuntu能够互相ping通 2.开发板的SD卡中安装好uboot&#xff0c;我用的V2.4版本的&#xff0c;其他版本应该也行 3.准备材料 01_chrdevbase文件 linux-im…

Java类的加载器

package chapter03;//Java种的类主要分为3种 //1.Java核心类库种的类:String&#xff0c;0bject //2.JVM 软件平台开发商 //3.自己写的类&#xff0c;User&#xff0c;Child //类加载器也有3种 //1.BootclassLoader:启动类加载器 // 2.PlatformclassLoader:平台类加m载器 // 3.…

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-静态内存

目录 一、内存管理二、静态内存2.1、静态内存运行机制2.2、静态内存开发流程2.3、静态内存接口2.4、实例2.5、代码分析&#xff08;待续...&#xff09;坚持就有收货 一、内存管理 内存管理模块管理系统的内存资源&#xff0c;它是操作系统的核心模块之一&#xff0c;主要包括…

蓝桥杯每日一题------背包问题(三)

前言 之前求的是在特点情况下选择一些物品让其价值最大&#xff0c;这里求的是方案数以及具体的方案。 背包问题求方案数 既然要求方案数&#xff0c;那么就需要一个新的数组来记录方案数。动态规划步骤如下&#xff0c; 定义dp数组 第一步&#xff1a;缩小规模。考虑n个物品…

Spring Boot 笔记 017 创建接口_新增文章

1.1实体类增加校验注释 1.1.1 自定义校验 1.1.1.1 自定义注解 package com.geji.anno;import com.geji.validation.StateValidation; import jakarta.validation.Constraint; import jakarta.validation.Payload; import jakarta.validation.constraints.NotEmpty;import jav…

如何使用 Python 通过代码创建图表

简介 Diagram as Code 工具允许您创建基础架构的架构图。您可以重复使用代码、测试、集成和自动化绘制图表的过程&#xff0c;这将使您能够将文档视为代码&#xff0c;并构建用于映射基础架构的流水线。您可以使用 diagrams 脚本与许多云提供商和自定义基础架构。 在本教程中…

Qt:自定义信号,信号emit,传参问题,信号槽与moc

一、自定义信号&#xff0c;信号emit 1、自定义信号 在头文件中 加入signals&#xff1a; 就可以编写信号 2、emit emit的作用是通知信号发生 二、跨UI控件传参 每次按Dialog添加按钮主控件数字会增长 // .h private slots:void on_btnAdd_clicked(); signals:void sign…