【学习笔记】MySQL—事务

MySQL——事务篇 学习笔记 并发事务问题是指在多个事务同时执行时可能出现的各种问题,这些问题可能会导致数据不一致或者违反数据库的一致性约束。注意:默认MySQL的事务是自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐 式的提交事务。幻读发生在当事务在读取某个范围的数据时,由于其他事务插入新行,导致事务在后续的读取操作中看到了之前未见的行。不可重复读发生在当事务多次读取同一数据时,由于其他事务的修改操作,导致每次读取的结果不一致。这样,要么整个预订过程全部成功,要么全部失败,确保了系统数据的一致性和完整性。 阅读详情

1.事务的概念

  • 事务: 事务是由单独单元的一个或者多个SQL语句组成,在这个单元中,每个语句是相互依赖的。
  • 描述性理解: 这个单独单元是一个整体,如果政体中的某个语句执行失败或者产生错误,则整个单元将会回滚。所有受到影响的数据将会返回到事务开始以前的状态;只有当单元中所有的语句都执行成功,事务才会被顺利执行。
  • 存储引擎: 在MySQL 中使用不同的存储技术将数据存储在文件或者内存中。
    • show engines: 就可以查看mysql支持的存储引擎;
    • 常见的存储引擎:innodb, myisam, memory。 其中,只有innodb支持事务机制。

2. 事务的属性(ACID)

  • 原子性(Atomicity)
    事务是一个不可分割的工作的单位,如同原子一般。事务中的操作要么都发生要么都不发生。
  • 一致性(Consistency)
    事务必须使数据库从一个一致性状态变换为另一个一致性状态。
  • 隔离性(Isolation)
    一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。
  • 持久性(Durability)
    一个事务一旦被提交,他对数据库中数据的改变就是永久性的,接下来的其他操作甚至数据库的故障不应该对它有任何影响。

3. 数据库的隔离级别

  • 不设置隔离级别引发的问题:
    • 脏读 : 对于两个事务T1,T2; T1 读取了已经被T2更新但还没提交的字段。若T2回滚,则T1读取的内容就是临时且无效的。
    • 不可重复读: 对于事务T1,T2; T1 读取了一个字段,然后T2 更新了该字段。当T1再次读取该字段时,与上次读取的值不同。
    • 幻读: 对于两个事务T1,T2; T1从一个表中读取了一个字段,然后T2在该表中插入了一些行的行;当T1再次读取同一个表,就会多出几行。
  • 隔离级别
    • 设置隔离级别的必要性: 避免各个事务的并发问题。
    • **读未提交(read uncommited) : ** 允许事务读取未被其他事务提交的数据;可能出现的问题:脏读,不可重复读,幻读。
    • **读已提交(read commited) : ** 只允许读取已经被其他事务提交的变更。可以避免脏读,可能出现的问题:不可重复读,幻读。
    • **可重复度(repeatable read) : ** 确保事务可以从多个从一个字段中读取相同的值。在这个事务持续期间,禁止其他事务对这个字段进行更新。可能出现的问题幻读。
    • **串行化(serializable) : ** 确保事务可以总一个表中读取相同的行。在这个事务持续期间,禁止其他事务对该表执行插入,更新和删除操作。虽然可以避免所有并发问题但是性能低下。
神经形态芯片:IBM TrueNorth技术详解以及应用案例 2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。 阅读详情

相关推荐

普罗米修斯监控达梦数据库集群

-----------------------------------新增文件---------------------------------------注:图上即为启动成功,如果没有问题,则使用nohup后台启动程序。官网地址:https://github.com/gy297879328/dameng_exporter。注:prometheus的对数据库的指标采集如果高于60s一次,请手动修改提供表盘中的计算值。修改dameng_exporter.config配置文件,修改账号密码的部分。

weixin_49985403的博客 1684

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

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

u012632105的博客 91

谷粒商城学习笔记-15-数据库初始化

这一节的主要内容是把创建对应的数据库和数据库表。

epitomizelu的专栏 1438

认识事务 MySQL学习笔记

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

Gloudcea_Kirara的博客 411

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

一直被模仿,从未被超越 5535

MOBsf联动雷电模拟器(在docker国内库撤销后)

MobSF (全称:Mobile Security Framework,中文名:移动安全框架) 是一个自动化的移动应用程序(Android / iOS / Windows)开源测试工具,该工具采用Python开发,能够执行静态,动态和恶意软件分析。MobSF提供了很多自动化分析功能,尤其适用于Android应用。安装必备(默认已准备好)docker(kali) 现在的国内镜像源都已经下架了只能开代理下载桌面版然后给pull到本地。

qq_48149564的博客 1600

MySQL Transaction(事务)学习笔记

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

我的学生时代 1万+

在天问block环境下LU-ASR01与51单片机的基础运用

正确步骤将模块和电脑连接后,仍然显示未连接(如4.1中图片中的编译下载后面显示未连接),可以尝试关闭软件后尝试,如果仍然不行换一条type-c线再试;以上方式都不行,可能要怀疑ASR01硬件损坏,跟商家联系!!!

BUG7073的博客 1万+

MySQL学习笔记3【事务】

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

Rinai的博客 595

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4707

第4节:cesium 0基础发布离线地图(含源码+视频)

cesium发布离线地图

qq_29384639的博客 1597

Mysql学习笔记之事务

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

weixin_43435307的博客 1053

SAP CDS View association 的工作原理,与数据库传统 join 操作的区别讲解

笔者前一篇教程,介绍了 SAP CDS View 里如何创建 association:本文就来一一对这些问题进行解答。首先我们来研究如何消费创建好的 SAP CDS View 中的 association 数据。在上图 ABAP Development Tool 里展示的 CDS View 界面,点击 F8 快捷键,进入 Data Preview 即数据预览界面。我们随便选中一条行项目,右键,发现右键菜单里,赫然有一条的菜单项。看来这个功能肯定和 association 相关了。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1009

[MySQL学习笔记] 事务

本文介绍了数据库事务的核心概念与特性。事务是具有ACID特性的操作序列,包括原子性、一致性、隔离性和持久性。文章详细分析了事务并发可能产生的脏读、不可重复读和幻读问题,并对比了四种隔离等级(读未提交、读提交、可重复读和串行化)的特点及其对并发问题的解决能力,隔离性越强则并发性越低。最后介绍了两种事务控制方式:通过设置自动提交参数或使用显式的事务控制语句(BEGIN/COMMIT/ROLLBACK)来管理事务。

qq_58547683的博客 602

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2020.2.10C++学习笔记——C++操作Mysql事务机制(回滚)

C++学习笔记——C++操作Mysql事务机制(回滚) Mysql的事务机制(transaction) MySQL 事务主要用于处理操作量大,复杂度高的数据。数据库操作语句构成事务。在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务一般用来管理 insert,update,de...

CQ的学习笔记 2369

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

(新手友好)MySQL学习笔记(完):事务和锁

强制事务串行执行,不会出现并行事务,所以就解决了脏读,不可重复读,幻读的问题,该隔离等级会读取的行上添加行锁以及隔离锁以避免幻读问题,同时对于读取操作加入共享锁,写入操作加入排他锁,值得一提的串行化虽然能够避免所有有关一致性的问题,但是因为它并发性能低,容易死锁,效率低,在一般项目中很少用,更多的还是使用可重复读或提交读。:一个事务读到另一个事务未提交的数据就是脏读,因为一个事务对于一条记录做修改,在该事务未提交前所做的修改随时有可能回滚,因此被另一个事务读到并回滚的数据就是脏数据。

hhhhhhhuouo的博客 683

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

commit,rollback,savepoint事务__mysql学习笔记

如果事务中途失败,事务中的任何部分都不会被记录到数据库中; 控制事务 Commit Rollback Savepoint   attention:我们之前学的那些upgread呀什么的,修改数据后是可以看到修改的,但是这只是表面上的,这些修改的信息保存在一个临时空间内(当然这个空间的大小是一定的,要是数据多,修改多的时候,我们如果一直不commit,到一定程度时,数据库自己就会限制不让

cyymfs的博客 2105

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

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

Nicky's blog 6302

mysql事务学习笔记

MYSQL事务 原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性:一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 **脏读(Dirty read): **当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据...

俊峰博文 295

MySQL学习笔记(七)——事务

为了解决上述的问题,就需要通过数据的事务来完成,我们只需要在业务逻辑执行之前开启事务,执行完毕后提交事务。是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作。幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了 "不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。可以看到数据操作前后是一致的。

weixin_56370772的博客 717

MySQL事务学习笔记

事务是一组操作的集合,是不可分割的工作单位,操作要么同时成功,要么同时失败。例如转账场景,张三给李四转账 1000 ,包含查询张三余额、张三余额减 1000、李四余额加 1000 操作,这些操作作为整体,若中间抛异常则回滚,都成功才提交。默认 MySQL 事务自动提交,执行 DML 语句会隐式提交。

weixin_74333370的博客 925

【MySQL】事务学习笔记

事务是什么?二、事务的特性

李漂亮的博客 942

学习笔记-MYSQL 事务

事务是访问并可能更新数据库中数据的一个执行单元,这个单元是由一条或多条语句组成,单元里的语句是相互依赖的。 这个单元里的SQL语句一起向系统提交,提交后要么都执行成功,要么都失败。

LearnTech_123的博客 1733

MySQL学习笔记-02(约束、多表查询、事务)

MySQL内置函数、MySQL约束、MySQL多表查询、MySQL事务学习笔记。

weixin_41016739的博客 1347

MySQL学习笔记——事务

事务分为2种事务,隐式事务和显式事务,接下来分别进行讨论。 隐式事务 在MySQL中,每一条update、insert、delete语句默认都是一个事务,通过 SHOW VARIABLES LIKE 'autocommit'; 我们会发现他的值为“on”,要想关闭隐式事务,我们可以通过设置该变量的值 SET autocommit=0; 我们可以发现该变量的值变成了“off",这样就关闭了隐式事...

Z_Ba_F的博客 403

ci mysql 事务_MySQL事务-学习笔记

MySQL事务-学习笔记MySQL事务事务的意义案例:银行转账过程A向B转账500,A原来有1000,B有500。分析:SQL处理过程:A 减少 500B 增加 500以上两点必须同时生效,才算合理。核心:要么都成功,要么都失败事务(Transaction):一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)事务管理(ACID)原子性...

weixin_28918553的博客 158
上一篇: 【学习笔记】MySQL—约束
下一篇: LeetCode01—两数相加
D东东锵
博客等级 码龄11年 19粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值