MYSQL系列之 事务

【MySQL系列】MySQL索引事务 MySQL数据库 索引和事务部分的内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 阅读详情
事务的特性

ACID: Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)

事务开启方式:

1、显式启动事务语句, begin 或 start transaction。配套的提交语句是 commit,回滚语句是 rollback。
2、set autocommit=0,这个命令会将这个线程的自动提交关掉。意味着如果你只执行一个 select 语句,这个事务就启动了,而且并不会自动提交。这个事务持续存在直到你主动执行 commit 或 rollback 语句,或者断开连接。

SQL 标准的事务隔离级别

· 未提交: 一个事务还没提交时,它做的变更就能被别的事务看到。
· 读提交: 一个事务提交之后,它做的变更才会被其他事务看到。
· 可重复读 : 一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。
· 串行化: 顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。

事务隔离级别的实现(视图view)

数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准。
1、在“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图。
2、在“读提交”隔离级别下,这个视图是在每个 SQL 语句开始执行的时候创建的。
这里需要注意的是,“读未提交”隔离级别下直接返回记录上的最新值,没有视图概念;而“串行化”隔离级别下直接用加锁的方式来避免并行访问

事务隔离的实现

在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作(undo log)。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。
在这里插入图片描述
假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就会有类似右图的记录
当前值是 4,但是在查询这条记录的时候,不同时刻启动的事务会有不同的 read-view。如图中看到的,在视图 A、B、C 里面,这一个记录的值分别是 1、2、4,同一条记录在系统中可以存在多个版本,就是数据库的多版本并发控制(MVCC)。对于 read-view A,要得到 1,就必须将当前值依次执行图中所有的回滚操作得到。
同时你会发现,即使现在有另外一个事务正在将 4 改成 5,这个事务跟 read-view A、B、C 对应的事务是不会冲突的。

MySQL笔记(3)事务隔离:为什么你改了我还看不见? 我将会以 InnoDB 为例,剖析 MySQL 在事务支持方面的特定实现,并基于原 理给出相应的实践建议,希望这些案例能加深你对 MySQL 事务原理的理解。 隔离性与隔离级别 提到事务,你肯定会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性”。 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(nonreapeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。 在谈 立即下载

相关推荐

学习记录——SIMPACK生成轨道谱文件的方法

生成轨道谱文件的方法,可以用于实测轨道谱导入和自制轨道谱导入仿真

weixin_51965897的博客 7799

SqlServer事务使用方法

创建事务 T-SQL中管理事务的语句: 1 开始事务: begin transaction 2 提交事务:commit transaction 3 回滚事务: rollback transaction 事务分类: 1 显式事务:用begin transaction明确指定事务的开始。 2 隐性事务:打开隐性事务:set implicit_trans

Ken的博客 2258

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1117

MySQL中的select查询会用到事务吗

即使没有明确的开启事务,InnoDB存储引擎也会为查询自动开启一个隐式事务。因此,可以说InnoDB所有的操作都是在事务中进行的。众所周知,在InnoDB存储引擎中,所有的修改操作都必须在事务中进行。那么查询操作会用到事务吗?虽然,查询操作也会在事务的上下文中执行,但是它并没有对数据进行写的操作,所以事务。

冥胖胖9的博客 2827

Spring Authorization Server实战:从零搭建OAuth2.1授权中心(含数据库改造)

本文详细介绍了如何从零开始使用Spring Authorization Server搭建符合OAuth2.1规范的授权中心,并完成关键的数据库持久化改造。内容涵盖微服务架构下的统一认证需求、基础配置、数据库表设计、高级特性(如令牌自定义、性能优化)以及与现有系统(如SSO、Gateway网关)的集成实战,为构建生产级授权服务提供完整指南。

weixin_29315091的博客 253

【LaTeX】IEEE会议模板中使用BibTex插入文献(解决报错:Something‘s wrong--perhaps a missing \item. \end{thebibliography}

使用IEEE会议论文LaTeX模板时遇到的一个错误,问题描述为:使用Texstudio编译LaTeX模板报错,报错信息提示为。出现的原因为IEEE会议论文模板自带的参考文献引用方式为手动插入,即不使用格式的参考文献,手动将参考文献调整为合适格式,然后粘贴到文本中,我准备将其换成方法引用参考文献。我的替换步骤为删除原始参考文献对应内容,即模板中的: 将以下函数添加到原始参考文献对应位置,对应上文新建的文件。 再次编译出现报错 删除文件夹中的文件 修改模板中的引用名称 引用方法为: 将 替换为 再次编译——

TangPlusHPC的博客 9904

MYSQL事务

MYSQL事务简介 什么是事务 一个不可再分的最小工作单元,通常对应一个完整的义务流程。事务是用来管理SQL的DML语句(updata、delete、insert)。 事务的四大特征ACID 原子性(Atomicity): 指一个事务的所有操作要么全部成功,要么全部失败。undo log是用来回滚数据的,用于保障未提交事务的原子性。 一致性(Consistency): 隔离性(Isolation,又称独立性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,以防止多个事务的操作导致数据的不一致。包

qq_41945572的博客 236

S32K314 EB配置MCAL全模块讲解【Autosar——1 MCU模块详解】持续更新中

FIRC(fast internal RC Oscillator) :高速内部时钟,固定48MHZ;SIRC(Slow Internal RC Oscillator):低速内部时钟,固定32KHZ;FXOSC(Fast Crystal Oscillator Digital Controller):高速外部晶振(8-40MHZ),根据原理图选型进行配置;SXOSC():外部低速外部时钟,固定输入32.768KHZ;PLL_PHIn_CLK:时钟倍频锁相环时钟范围(640-1280MHZ);

qq_40488886的博客 1780

隐式事务,显式事务,自动提交事务

1,事务在数据库中主要用于保证数据的一致性,防止出现错误数据 事务的基本控制语句 BEGIN TRANSACTION 表示本地事务的开始 BEGIN DISTRIBUTED TRANSACTION表示分布式事务起始 COMMIT TRANSACTION表示事务的提交 ROLLBACK TRANSACTION表示事务的回滚 COMMIT事务的提交 与COMMIT TRANSACTION功能相同 RO...

9038

【硬件开源实战】STM32G070RBT6开发板从设计到避坑全解析

本文全面解析了STM32G070RBT6开发板从硬件设计到避坑的实战经验。详细介绍了电源设计、时钟电路、PCB布局等关键环节,分享了成本控制、焊接测试、软件开发和外设驱动的实用技巧,帮助开发者高效完成项目开发。

weixin_26897585的博客 236

天气预测模型:基于时间序列分析的数学建模与实战案例

目录引言时间序列分析介绍使用Matlab进行天气预测实战案例:天气预测结论天气预测一直是气象学和相关领域的重要研究问题之一。数学建模是进行天气预测的有效方法之一,其中时间序列分析是常用的技术。在本篇博客中,我们将介绍时间序列分析的基本原理,演示如何使用Matlab进行模型建立和预测,并通过一个实战案例来展示模型的应用和分析。时间序列分析是一种用于分析和预测时间序列数据的统计方法。天气数据通常具有时间依赖性和随机性,因此时间序列分析可以帮助我们了解天气的变化趋势和规律,并提供对未来天气的预测。时间序列分析通常

YOLO 1545

SQLSERVER 事务详解 (隐式事务,显式事务,自动提交事务)

隐式事务,显式事务,自动提交事务 1,事务在数据库中主要用于保证数据的一致性,防止出现错误数据 事务的基本控制语句 BEGIN TRANSACTION 表示本地事务的开始 BEGIN DISTRIBUTED TRANSACTION表示分布式事务起始 COMMIT TRANSACTION表示事务的提交 ROLLBACK TRANSACTION表示事务的回滚 COMMIT事务的提交 与COMMIT T...

qq_38752165的博客 7984

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySQL系列之事务

此为MySQL专栏文章之一,讲解MySQL 事务。事务是逻辑上一组操作的集合,事务会把所有操作作为一个整体一起向系统 提交 或 撤销 操作请求,即这些操作要么同时成功,要么同时失败。

Java 技术专栏,从入门到精通,熟悉企业级开发 1177

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

最近我在系统的学习MySQL数据库的底层知识,并将这些文章与你分享,本文主要讲的是事务相关的知识,但是由于篇幅原因,加上MVCC的重要性,我不得不继续更加深入的学习MVCC,并能更好的组织自己的语言,让它能够通俗易懂,以便在某一天我回顾这些知识点的时候,它依旧清晰明了。

m0_74931226的博客 230

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

mysql系列二事务_MySQL 系列 事务

概念事务事务会把数据库从一种一致状态转换到另一种一致状态。在数据库提交工作时,可以保证要么所有修改都已经保存了,要么所有修改都不保存。事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事务的目的。ACID特性InnoDB存储引擎中的事务完全符合ACID特性:原子性: 整个数据库事务是不可分割的工作单位。一致性: 事务将数据库从一种状态转换为下一种...

weixin_35924765的博客 93

【MySQL系列】MySQL事务知识点

事务的特性 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性) Atomicity:原子性,执行的最小单元,不可拆分。 Consistency:一致性,事务在执行DML操作时,要么成功,要么失败。 Isolation:隔离性。两个事务执行具有隔离性。 Durability:持久性。事务执行以后,对数据库的影响是持久的。 mysql事务常用的命令 开启事务:两个都可以 begin; start transaction;

weixin_42246822的博客 944

mysql系列二事务_MySQL系列:事务机制

一、MySQL并发访问控制1.并发控制机制(1)锁机制资源竞争时候,多个线程表示多个用户会话;通过读写锁机制实现读锁:共享锁,可以多个用户同时读取同一资源文件写锁:独占锁,当一个用户对资源文件进行写操作时,其他线程既不能读也不能写(2)锁粒度表级锁:对于整个表进行的锁操作,并发处理有限,在线事务处理读写一样多时会出问题行级锁:对于部分资源的锁操作(3)锁策略在锁粒度及数据安全性寻求的平衡机制;每种...

weixin_42175516的博客 143

mysql系列二事务_Mysql原理系列二:Mysql事务以及其实现

Mysql事务以及其实现事务是一种规范,满足ACID四个特性. MySQL为了满足这四种特性做了大量的工作 。认识这些原理,对我们理解MySQL有很大的帮助。原子性:一个操作要么全部执行,要么全部不执行.undo log要保证事务的原子性,就要在异常发生时, 对已经执行的操作进行回滚. MySQL通过回滚日志(undo log)来记录sql执行相关信息,从而保证事务的原子性.。事务在进行操作的时候...

weixin_39727706的博客 83

MySQL系列7—事务

文章目录1. 事务1.1 概念1.2 ACID属性1.3. 隔离级别1.3. 演示事务的使用步骤1.5 redo log保证事务的持久性2. MySQL的MVCC2.1 MVCC是什么?2.1.1 当前读2.1.2 快照读2.1.3 MVCC的优点2.2 MySQL的底层实现2.3 MVCC实现事务隔离2.3.1 事务隔离级别的实现2.3.2 MVCC怎么解决脏读2.3.3 MVCC怎么解决不可重复读3. MySQL的锁机制3.1 行锁、表锁、页锁3.2 共享锁、排他锁、意向锁3.3 记录锁、间隙锁、临键锁

clyss1234的博客 344

Mysql系列之事务

一 什么是事务 事务 由一个不可分割的数据库操作序列构成,也是数据库并发控制的单位 1 原子性:事务是最小的执行单位 不允许分割 事务的原子性要么全部完成 要么全不起作用 2 一致性 执行事务前后 数据保持一致 多个事务对同一个数据读取的结果是相同的 3 隔离性:并发访问数据时 一个用户的事务不被其他事务干扰 各并发事务数据库是独立的 4 持久性:一个事务被提交了之后 它对数据库的改变是持久的 ...

qq_43614498的博客 411

mysql事务机制_MySQL系列:事务机制

一、MySQL并发访问控制1.并发控制机制(1)锁机制资源竞争时候,多个线程表示多个用户会话;通过读写锁机制实现读锁:共享锁,可以多个用户同时读取同一资源文件写锁:独占锁,当一个用户对资源文件进行写操作时,其他线程既不能读也不能写(2)锁粒度表级锁:对于整个表进行的锁操作,并发处理有限,在线事务处理读写一样多时会出问题行级锁:对于部分资源的锁操作(3)锁策略在锁粒度及数据安全性寻求的平衡机制;每种...

weixin_39998462的博客 276

mysql系列二事务_mysql系列(五)——事务

一、什么是事务事务由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句时相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产生错误,整个单元将会回滚,也就是所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。支持事务的mysql引擎show engines;(查看数据库支持事务的引擎(i...

weixin_29240711的博客 99

mysql系列二事务_MySQL 系列(三)事务

MySQL 系列(三)事务一组要么同时执行成功,要么同时执行失败的 SQL 语句。是数据库操作的一个执行单元!事务开始于:连接到数据库上,并执行条 DML 语句(INSERT、 UPDATE 或 DELETE)。前一个事务结束后,又输入了另外一条 DML 语句。如果 JDBC 连接是在自动提交模式下,它在默认情况下,那么每个 SQL 语句都是在其完成时提交到数据库。事务结束于:执行 COMMIT ...

weixin_32691823的博客 85

MySQL系列之事务编程学习笔记

MySQL基础之事务编程学习笔记 在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》一章根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助 提到事务肯定会想到事务的4个特性ACID,要保证业务的正常使用,必须保证ACID,AC...

Nicky's blog 6302
上一篇: MYSQL系列之 索引的概念
下一篇: MYSQL系列之 锁与死锁
Kindle_code
博客等级 码龄12年 21粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值