《mysql学习》-- 事务

【人工智能】人工智能基础概念、流派、发展史 人工智能初衷就是让计算机能够像人类一样具有自我思考、自我学习、自我决策的能力。依据百度百科上对人工智能定义:人工智能是研究、开发用于模拟、扩展和延伸人的智能的理论、方法、技术及应用系统的一门新的技术学科。人工智能是研究使计算机来模拟人的某些思维过程和智能行为的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。 阅读详情

mysql

事务

1、事务的特性

ACID
有效的减少io次数可以明显提高数据库性能,当不开启事务的事务,每执行一条语句都当做一个事务,都会发生一次io,如果开启事务,将一个事务中所有的sql执行会首先在内存中执行,然后事务提交后开启一次io根据事务日志同步到磁盘。

事务日志

参考:MySQL事务提交过程(一)
1. 重做日志:
2. 撤销日志:
事务日志可以帮助提高事务的效率,存储引擎在修改表的数据时只需要修改你内存拷贝,再把修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据持久到磁盘。事务日志采用的是追加的方式,因此写日志的操作时磁盘上一小块区域内的顺序IO,所以采用事务日志的方式相对来说快很多。事务日志持久后,内存中修改的数据在后台可以慢慢的刷回磁盘,修改数据需要写两次磁盘。如果修改的数据已经记录到事务日志并持久化,即使数据本身还没有写回磁盘,操作系统崩溃了,存储引擎在重启时能够自动回复这部分数据
MySQL 本身不提供事务支持,而是开放了存储引擎接口,由具体的存储引擎来实现,具体来说支持 MySQL 事务的存储引擎就是 InnoDB。存储引擎实现事务的通用方式是基于 redo log 和 undo log。
简单来说,redo log 记录事务修改后的数据, undo log 记录事务前的原始数据。所以当一个事务执行时实际发生过程简化描述如下:
1. 先记录 undo/redo log,确保日志刷到磁盘上持久存储。
2. 更新数据记录,缓存操作并异步刷盘。
3. 提交事务,在 redo log 中写入 commit 记录。
事务一定要保证日志先落盘,才能算事务提交完成,提交过程中,主要做了4件事情,
1. 清理undo段信息,对于innodb存储引擎的更新操作来说,undo段需要purge,这里的purge主要职能是,真正删除物理记录。在执行delete或update操作时,实际旧记录没有真正删除,只是在记录上打了一个标记,而是在事务提交后,purge线程真正删除,释放物理页空间。因此,提交过程中会将undo信息加入purge列表,供purge线程处理。
2. 释放锁资源,mysql通过锁互斥机制保证不同事务不同时操作一条记录,事务执行后才会真正释放所有锁资源,并唤醒等待其锁资源的其他事务;
3. 刷redo日志,前面我们说到,mysql实现事务一致性和持久性的机制。通过redo日志落盘操作,保证了即使修改的数据页没有即使更新到磁盘,只要日志是完成了,就能保证数据库的完整性和一致性;
4. 清理保存点列表,每个语句实际都会有一个savepoint(保存点),保存点作用是为了可以回滚到事务的任何一个语句执行前的状态,由于事务都已经提交了,所以保存点列表可以被清理了。

事务状态

  1. 活动的
  2. 部分提交的:部分数据已同步到磁盘上,但是没全部写入
  3. 失败的:事务提交了,但是提交失败
  4. 终止的:失败后终止了事务
  5. 提交的:事务一旦提交无法撤销,只能通过补偿事务来完成

事务并发执行

1、提高吞吐量和资源利用率
2、减少等待时间

事务调度

  1. 可恢复调度:两个事务交叉执行都不会导致另外一个事务状态改变
  2. 无级联调度:

并发控制技术手段

  1. 锁:
  2. 时间戳:
  3. 多版本和快照隔离:

事务隔离级别

参考:深入分析事务的隔离级别

  1. Read uncommitted:更新时对修改行的数据添加行级共享锁。
  2. Read committed:读取时对读取的数据添加行级共享锁,一旦读完立即释放更新时对修改行的数据添加行级排他锁,直到事务结束释放
  3. Repeatable reads:读取时对读取的数据添加行级共享锁,直到事务结束释放更新时对修改行的数据添加行级排他锁,直到事务结束释放
  4. Serializable:读取时添加加表级共享锁,直到事务结束才释放更新时添加表级排他锁,直到事务结束才释放。
AUTOSAE软件配置-达芬奇( DaVinci Configurator)从新建工程开始 方法1,直接使用案例工程,一般SIP包会有一个创建好的案例工程,在这样的路径YOUR_SIP_DIR/Applications/SipAddon/StartApplication下面直接打开这个*.dpa文件即可看到已经预先做好的工程:但是,这个也不是全的,也不一定完全正确,至少MCAL是没有配置好的(MCAL是IC厂商提供的,并不归属SIP包的一部分)。这样就需要你自己去配置你想要的模块,修改里面的错误。 阅读详情

相关推荐

实测OV5640 DVP/MIPI接口720p@60fps配置,为什么我的Zynq-7020开发板只有30帧?

本文深入解析了OV5640摄像头在Zynq-7020开发板上帧率减半的问题,从寄存器配置到硬件链路进行全面排查。重点分析了DVP/MIPI接口的720p@60fps配置,提供了关键寄存器设置、时序参数调整及硬件带宽验证方法,帮助开发者快速定位并解决帧率下降问题。

weixin_42634811的博客 344

Mysql事务学习

下面展示两个事务,事务A和事务B。其中事务A执行查询, 主动在行上添加S锁, 然后直接在上下文再次执行开启事务的命令, 期望开启事务B, 看看会同时开启两个事务吗?BEGIN和是完全等价的事务开启命令。在显式事务中,如果旧事务未提交,开启新事务时会触发旧事务的自动提交。普通的SELECT不会单独创建事务上下文,trx_id保持一致。写操作(如UPDATE)会为每个事务生成新的trx_id,即使内容完全相同。下面展示两个事务,事务A和事务B。其中事务A执行查询, 主动在行上添加S锁。

qq_21410843的博客 967

DeerFlow 在 Windows 上的安装与启动详细步骤

DeerFlow Windows安装与启动指南 DeerFlow是基于LangGraph的AI Agent系统,包含后端服务和前端界面。后端安装需Python 3.12+,创建虚拟环境后安装依赖,需注意解决langgraph版本冲突问题(推荐1.0.8版本)。配置文件中需设置模型参数(如本地Qwen3-32B-AWQ模型)和sandbox配置。启动分为两步:LangGraph Server(端口2024)和Backend Gateway(端口8001)。前端要求Node.js 22+和pnpm,配置.env

笨小孩 581

MYSQL事务学习总结

在数据库操作的复杂世界里,事务是保障数据一致性、完整性和可靠性的关键机制。无论是银行系统中的资金转账,还是电商平台的订单处理,事务都在默默地发挥着重要作用。MySQL 作为广泛使用的数据库管理系统,其事务处理机制涉及到多个重要的概念和特性。从原子性确保操作的整体性,到一致性维护数据在事务前后的稳定状态,再到隔离性控制并发事务之间的相互影响,以及持久性保障提交后数据的安全存储,每一个特性都值得深入探究。同时,事务的隔离级别和保存点等相关内容也对数据库操作的准确性和灵活性有着重要意义。

duehebfbf的博客 2949

详解Numpy中的transpose方法

最近在学Numpy碰到了关于数组转置和换轴的概念,尤其是对tanspose方法有些疑惑,尤其是多维,查了不少资料,终于搞懂了。 Numpy数组的轴(axis) 所谓的**轴(axis)**可以理解为数组的维度。 具体而言,二维数组就是有两个维度,如果从空间上看,它就是一个平面,由x轴和y轴构成,而与此相对应的,该二维数组就有两个轴,x轴对应0轴,y轴对应1轴。 同理,三维数组有三个维度,空间上...

BlankGrid的博客 936

# 芯片良率是怎么算出来的?——从泊松到负二项分布,一个芯片测试工程师的视角

- 良率=好Die/总Die,但选错模型可能差17个百分点 - Poisson模型过于悲观,Murphy居中,**Negative Binomial才是业界标配** - 关键不是良率数字,是**跟踪聚类因子α的变化**——它能早几周预警工艺漂移 - Chiplet时代,10颗90%良率的Die封在一起,整体良率只有35%

Freezeblur的博客 646

认识事务 MySQL学习笔记

比如说银行转账,你给张三转账,你的钱转出去了,但是张三却没收到,这个步骤出错了,那就要把钱撤销到初始的状态。这样,当你的一系列事务前包含了这START TRANSACTION或者BEGIN,你还是需要用COMMIT指令才能执行这些事务。可是刷新后,emp的表里没有出现王强,所有我们需要手动提交事务。个人理解:事务,是一组操作,不可分割,要么成功,要么失败。个人理解:事务无论做没做成功,就算是回滚了,也总会造成影响,产生永久的改变。当然,你也可以默认自动提交事务,但是有的事务你又想手动提交,该怎么办?

Gloudcea_Kirara的博客 411

PCB之AD层次化原理图设计

PCB之AD层次化(模块化)原理图设计 软件版本:AD17.1.9(bBuild 592) 先上效果图: 可以看到,图中有RS485和W5500这两个部分是复用了原理图,当项目中需要多个功能相同的电路时,这种设计就可以大大节约PCB布局布线的时间,方法后面介绍; 1.首先确定好项目中个部分电路的功能模块 不同功能的电路分开不同原理图画,然后给出输入输出端口,这样方便复用,下面是实例项目的功能划分 2.单个模块电路的接口设计 这里以W5500以太网接口电路为例说明: 主要就分为通讯接口和电源接口:

洋洋洋的博客 3万+

MySQL事务学习-Gap Lock1

间隙锁是一种重要的并发控制机制,在特定场景(如范围查询、可重复读隔离级别)下使用,可以有效防止幻读问题。但它也可能对性能和并发造成一定影响,因此需要在设计和调优中合理使用。MySQL 间隙锁行为的实际表现, 可以通过 MySQL 的索引扫描范围和锁定策略来解释。

qq_21410843的博客 1902

第三节: 串口通信(用CubeMX学习STM32)

用CubeMX学习STM32, 串口通信学习, 通过轮询方式和中断方式两种方式进行通信演示。 STM32F407zgt6

Kevin_8_Lee的博客 8903

71、CAN总线双绞线绞距与抗共模干扰的定量关系

摘要:本文探讨了CAN总线双绞线绞距与抗共模干扰的定量关系。通过理论推导得出共模电压与绞距平方成正比,绞距越小抑制效果越好。工程实践表明,工业现场推荐绞距不超过30mm,高频干扰场景需优先优化绞距。实测数据验证了绞距均匀性的重要性,建议控制在15-25mm范围,安装时保持绞合结构完整。案例显示,将绞距从50mm改为15mm后,共模干扰从12V降至1.8V,有效解决了CAN通信问题。绞距选择需兼顾理论计算与现场实测,同时注意与屏蔽层的协同设计。

2401_88858637的博客 184

【值得阅读的Mysql事务学习笔记】

不要再说自己不会了 你值得阅读的Mysql事务学习笔记 - 知乎

u012632105的博客 91

基于STM32F103的智能门禁门锁门卫系统设计

本文设计了一种基于STM32F103单片机的智能门禁系统,集成了密码、射频IC卡和指纹识别三种验证方式。系统采用模块化设计,包含MFRC522射频模块、AS608指纹模块、矩阵键盘、OLED显示和舵机控制等硬件,实现了身份验证、密码修改、IC卡/指纹管理以及安全防护功能。测试结果表明系统响应迅速(密码验证250ms、指纹验证600ms)、功耗低(待机50mA),且具备掉电密码保存功能。该系统操作简便、功能完善,适用于家庭和办公场所,具有较高实用价值。未来可扩展远程控制、人脸识别等功能以进一步提升智能化水平。

3254968421的博客 316

【Linux】重生之从零开始学习运维之Mysql事务

begin;

qq_40427704的博客 253

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL Transaction(事务)学习笔记

一、资源入口 这次很快就找到了入口 在MySQL官方文档界面查找(MySQL Server—>MySQL Reference Manual—>选定自己的版本,当然也可以下载的 ) 不过说真的还是下载下来HTML比较方便点,打开Index.html就是目录了,我在其中搜索字段‘transaction’然后可以快速定位自己关心的内容。 我已经得到的信息glossary.html 词汇表 二、词汇表中关

我的学生时代 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL学习之——事务

事务是什么?事务就是把对数据的一系列操作进行打包,实现ACID(Atomicity、Consistency、Isolation、Durability)四个特性,即原子性、一致性、隔离性、持久性。 说说隔离性。 1.MySQL事务有四种隔离级别 (1).读未提交:事务结果还未提交,便可被别的事务看见。 (2).读已提交:事务结果提交之后,才可被别的事务看见。 (3).可重复读:事务结果提交...

tanglihai的博客 227

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

MySQL学习笔记3【事务】

感觉这一节内容对于我来说还是很有用的,解决了我关于很多开发过程中会遇到的问题(譬如在一个函数中多次对数据库进行写入,中途发生失败导致数据的不一致性)

Rinai的博客 595

mysql事务学习

mysql事务是什么? MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部...

练涛 330

MySQL事务的学习

一、数据库事务概述 1、事务的概念 一组逻辑操作单元,使数据从一种状态换到另一种状态。 2、事务处理的原则 保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。 3、事务的ACID特性 1、原子性(atomicity):原子性是指事务是一个不可分割的工作单位,要么全部提交,要么全部失败回滚,不存在中间

liaguaya的博客 1159

MySQL事务学习

MySQL事务: 1、事务特性:原子性,一致性,隔离性,持久性** 原子性:对一些操作,要么同时成功,要么同时失败。 一致性:对一些操作,处理结果必须一致的,比如转账:A转给B,那么A账户减少100元,则B账户必须增加100元。 隔离性:多个事务操作数据的表或者行,如果没有隔离机制,那么不同的事务操作相同的数据时,就会产生相互干扰,影响数据结果。 持久性:对数据的修改或者操作,是永久的操作,比如...

liguoxi666 265

Mysql学习笔记之事务

事务是数据库确保数据一致性的重要机制,具有原子性、一致性、隔离性和持久性四大特性。MySQL默认自动提交事务,也可手动控制事务提交或回滚。并发事务会产生脏读、不可重复读和幻读问题,数据库提供四种隔离级别(Read uncommitted、Read committed、Repeatable Read、Serializable)来解决这些问题。隔离级别越高数据越安全但性能越低,需根据实际需求合理设置隔离级别。可通过SQL语句查看和修改当前事务隔离级别。

weixin_43435307的博客 1052

MySql事务学习

MYSQL中的事务学习 环境:Linux CentOS6.X 、MySQL5.7X 一、事务 1.1 简介 由一系列对系统中数据进⾏访问与更新的操作所组成的⼀个程序执行逻辑单元。 事务分为隐式事务、显示事务、分布式事务 1.2 事务的语法 1.开始一个事务:start transaction;或者是begin; 2.提交事务:commit;使得当前的修改确认 3.事务回滚:rollback;使得当前的修改撤销 1.3 事务的特性ACID 1.原子性(Atomicity): 事务的原子性是指事务必须是一个原

lykilxz的博客 247

MySQL学习[3] ——MySQL事务

如果一个事务「读到」另一个未提交事务所修改过的数据,就意味着发生了「脏读」现象。因为这个未提交的事务有可能执行失败而发生回滚,那么这个事务读取到的数据就是过期的数据,于是产生了**「脏读」**在一个事务内多次读取同一个数据,如果出现前后两次读到的数据不一样的情况,就意味着发生了「不可重复读」现象。出现这种情况的主要原因是,事务B在事务A两次读取之间提交了,从而修改了数据库。在一个事务内多次查询某个符合查询条件的「记录数量」,如果出现前后两次查询到的记录数量不一样的情况,就意味着发生了「幻读」现象。

shenfenxihuan的博客 4953

MySQL系列一:掌握MySQL底层原理从学习事务开始

点击上方蓝色“终端研发部”,选择“设为星标”学最好的别人,做最好的我们 ◆前言面试时候,经常会被问到什么是事务、事务的特征、事务的隔离级别这些八股文问题,凭死记硬背通常也可回答的七七八...

这个时代,作为程序员可能要学习小程序 364

MySQL 事务的学习整理

事务是数据库区别文件系统的重要特征之一。在文件系统中,如果你正在写文件,但是操作系统突然崩溃了,这个时候文件有可能会被损坏的,当然也会有一些机制让文件恢复到某一个时间点,比如依靠原有的备份等。 1 引入事务的目的 数据库系统引入事务的主要目的:事务会把数据库从一种一致状态转换成另外一种状态。在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存。 2 ...

csdn's blog 1万+

MySQL基础之事务编程学习笔记

在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》事务编程一章之后,根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助 1、事务概述 事务是数据库区别于文件系统的重要特性之一,提到事务肯定会想到事务的4个特性ACID,要保...

jx69693678nab的博客 179
上一篇: 《mysql学习》-- 索引
下一篇: 《mysql学习》-- mysql基本认识
fight_zhi
博客等级 码龄14年 27粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值