【MySQL】数据库之事务
目录
一、什么是事务
二、事务的ACID是什么?
三、有哪些典型的不一致性问题?
第一种:脏读
第二种:不可重复读
第三种:幻读
第四种:丢失更新
四、隔离级别有哪些?
(1)未提交读(Read Uncommitted(RU)):
(2)提交读(Read Committed(RC)):这是oracle 和 SQL server的默认隔离级别
(3)可重复读(Repeatable Read(RR)):---mysql默认的隔离级别
(4)串行读(Serializable):---相当于锁表
五、如何设置隔离级别?
六、事务管理操作命令
七、为什么我们登录MySQL的时候 每一条命令都能直接生效保存,并没有commit和rollback?
一、什么是事务
事务是一组数据库的操作序列,包含一个或多个sql操作命令(增删改),事务将所有的操作命令看做一个不可分割的整体,向数据库系统提交或撤销操作,所有操作要么执行要么不执行。
●事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
●事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。
●事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。
●事务通过事务的整体性以保证数据的一致性。
●事务能够提高在向表中更新和插入信息期间的可靠性。
总结:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
二、事务的ACID是什么?
ACID是指在可靠数据库管理系统DBMS中,事务(transaction)有四个特性,分别为原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
- 原子性(atomicity)
原子性是事务的基础,表示一个事务的所有的命令操作为一个单元整体,要么执行,要么不执行;
- 一致性(consistency)
一致性是事务的目的,为了事务开始前与结束后的数据完整与一致性;
- 隔离性(isolation)
隔离性是事务的手段,支持在多个事务并发操作的时候,访问相同的资源的时候,各自拥有独立的数据空间;
- 持久性(durability)
持久性是事务的结果,表示在完成事务以后,事务对数据的更改将会做永久保存,不会回滚。
三、有哪些典型的不一致性问题?
当多个客户端并发地访问同一个表时,可能出现下面的一致性问题:
第一种:脏读
脏读就是多个事务都在运行中,其中事务a修改完数据以后并没有结束事务,事务b能看到事务a的修改结果,这就是脏读。
举例实际案例中:
第二种:不可重复读
不可重复读就是多个事务在运行中,其中事务a修改了数据并提交以后,事务b能看到事务a的修改,这就是不可重复读
举例实际案例中:
第三种:幻读
幻读就是多个事务在运行过程中,事务a修改了表数据的所有行,此时事务b也插入了一条数据,并且事务b提交事务,此时事务a能看到事务b的数据,这就是幻读
举例实际案例中:
第四种:丢失更新
丢失更新的时候,多个事务在进行中,此时事务b对某字段进行了修改并提交,此时事务a并不知情,同时对该字段进行了修改,覆盖了事务b的修改,这就是丢失更新。
举例实际案例中:
四、隔离级别有哪些?
隔离级别分为四种,事务的隔离级别决定了事务之间可见的级别。
MySQL事务支持如下四种隔离,用以控制事务所做的修改,并将修改通告至其它并发的事务:
(1)未提交读(Read Uncommitted(RU)):
允许脏读,即允许一个事务可以看到其他事务未提交的修改。
(2)提交读(Read Committed(RC)):这是oracle 和 SQL server的默认隔离级别
允许一个事务只能看到其他事务已经提交的修改,未提交的修改是不可见的。防止脏读。
(3)可重复读(Repeatable Read(RR)):---mysql默认的隔离级别
确保如果在一个事务中执行两次相同的语句,都能得到相同的结果,不管其他事务是否提交这些修改。可以防止脏读和不可重复读。有条件的不允许幻读(InnoDB存储引擎可以不允许)
(4)串行读(Serializable):---相当于锁表
完全串行化的读,将一个事务与其他事务完全地隔离。每次读都需要获得表级共享锁,读写相互都会阻塞。可以防止脏读,不可重复读取和幻读,(事务串行化)会降低数据库的效率。
五、如何设置隔离级别?
隔离级别在MySQL中是一个变量
设置隔离级别:
set global transaction isolation level 隔离级别名称;
#全局级别的设置,可在所有会话有效,需要重新登录才可生效set session transaction isolation level 隔离级别名称;
#会话级别的设置,在当前会话会话中立即生效设置全局事务隔离级别:
set global transaction isolation level read committed; ##永久生效
set @@global.tx_isolation='read-committed'; #重启服务后失效设置会话事务隔离级别:
set session transaction isolation level repeatable read;
set @@session.tx_isolation='repeatable-read'; #重启服务后失效
查询隔离级别,这里的like表示模糊查询 百分号相当于通配符*的作用
查询全局事务隔离级别:
show global variables like '%isolation%';
SELECT @@global.tx_isolation;查询会话事务隔离级别:
show session variables like '%isolation%';
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;
六、事务管理操作命令
begin; #开启一个事务
.... create database/table insert into update XXX set delete from #事务性操作
savepoint XX; #在事务中创建回滚点
rollback to XX; #在事务中回滚操作到指定的回滚点位置
commit; 或 rollback; #提交或回滚结束事务
七、为什么我们登录MySQL的时候 每一条命令都能直接生效保存,并没有commit和rollback?
因为有自动提交事务变量!!!
如果开启自动提交事务,那么会将每一条增删改命令看做一条事务,然后自动提交,
如果说设置为0,就是关闭自动提交,那么会将登录后的所有的操作命令看做一个事务,最终需要commit提交一下,否则不生效!!
set [global/session] autocommit = 0/1; #0关闭自动提交,1开启自动提交
show [global/session] variables like 'autocommit';
相关文章:

【MySQL】数据库之事务
目录 一、什么是事务 二、事务的ACID是什么? 三、有哪些典型的不一致性问题? 第一种:脏读 第二种:不可重复读 第三种:幻读 第四种:丢失更新 四、隔离级别有哪些? (1…...

AGV|RGV小车RFID传感器CNS-RFID-01/1S的RS232通讯联机方法
CNS-RFID-01/1S广泛应用于AGV小车,搬运机器人,无人叉车等领域,用于定位,驻车等应用,可通过多种通讯方式进行读写操作,支持上位机控制,支持伺服电机,PLC等控制设备联机,本…...

【Python可视化系列】一文教会你绘制美观的热力图(理论+源码)
一、问题 前文相关回顾: 【Python可视化系列】一文彻底教会你绘制美观的折线图(理论源码) 【Python可视化系列】一文教会你绘制美观的柱状图(理论源码) 【Python可视化系列】一文教会你绘制美观的直方图(理…...

百度Apollo五步入门自动驾驶:Dreamview与离线数据包分析(文末赠送apollo周边)
🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 粉丝福利活动 ✅参与方式:通过连接报名观看课程,即可免费获取精美周边 ⛳️活动链接…...

为什么IPv6 可以作为低功耗蓝牙的物联网体系结构?
蓝牙40规范引人了低功耗蓝牙(Bluetooth Low Energy,BLE)技术。低牙是一种低能低延成本的无线通信技术。 与传统蓝牙相比,低功耗蓝牙同样使用24GHz频段,但其将信道重新划分为 40个,包含37 个数据信道和3个广播信道(传统蓝牙共使用 79 个信道)低功蓝牙的协…...

GPT每预测一个token就要调用一次模型
问题:下图调用了多少次模型? 不久以前我以为是调用一次 通过看代码是输出多少个token就调用多少次,如图所示: 我理解为分类模型 预测下一个token可以理解为分类模型,类别是vocab的所有token,每一次调用都…...
运维工程师的出路到底在哪里?
1.35岁被称为运维半衰期,主要是因为运维工作的技术栈和工作方式在不断更新和演进。随着新技术的出现和发展,老旧的技术逐渐被淘汰,运维工作也需要不断学习和适应新技术,否则就容易被市场淘汰。 2.要顺利过渡半衰期,运…...
2312clang,基于访问者的前端动作
原文 基于RecursiveASTVisitor的ASTFrontendActions. 创建用RecursiveASTVisitor查找特定名字的CXXRecordDeclAST节点的FrontendAction. 创建FrontendAction 编写基于clang的工具(如Clang插件或基于LibTooling的独立工具)时,常见入口是允许在编译过程中执行用户特定操作的F…...

怎么搭建实时渲染云传输服务器
实时渲染云传输技术方案,在数字孪生、虚拟仿真领域使用越来越多,可能很多想使用该技术方案项目还不知道具体该怎么搭建云传输服务器,具体怎么使用实时云渲染平台系统。点量云小芹将对这两个问题做集中分享。 一、实时渲染服务器怎么搭建&…...
如何在生产环境正确使用Redis
一、在生产环境使用Redis 如果在生产环境使用Redis,需要遵守一定的使用规范,以保障服务稳定、高效。。 1.1、明确Redis集群的服务定位 1、仅适用于缓存场景:Redis定位于高性能缓存服务,强调快速读写和低延迟的特性,…...

LeetCode-环形链表问题
1.环形链表(141) 题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统…...

C# 读取Word表格到DataSet
目录 功能需求 Office 数据源的一些映射关系 范例运行环境 配置Office DCOM 关键代码 组件库引入 核心代码 杀掉进程 总结 功能需求 在应用项目里,多数情况下我们会遇到导入 Excel 文件数据到数据库的功能需求,但某些情况下,也存…...

构建外卖系统:从技术到实战
在当今高度数字化的社会中,外卖系统的开发变得愈发重要。本文将从技术角度出发,带领读者一步步构建一个基础的外卖系统,并涵盖关键技术和实际代码。 1. 技术选型 1.1 后端开发 选择Node.js和Express框架进行后端开发,搭建一个灵…...

城市之眼:数据可视化在智慧城市的角色
作为智慧城市建设的核心组成部分,数据可视化扮演着至关重要的角色。在城市中,数据源源不断地产生,涵盖了从交通流量、环境质量到市民需求等各个方面。而数据可视化作为将这些数据呈现出来的手段,对智慧城市的发展起着关键性的作用…...

Nature | Baker团队用AI设计出史上最高互作强度的蛋白质
蛋白质是生命的基础,是生命功能的主要执行者,其结构与功能由氨基酸序列所决定。蛋白质设计是指对新蛋白质分子进行人为的合理设计,旨在设计新的活性,行为或目的,并增进对蛋白质功能的基本了解。可以从头开始设计蛋白质…...

C# 初识System.IO.Pipelines
写在前面 在进一步了解Socket粘包分包的过程中,了解到了.NET 中的 System.IO.Pipelines,可以更优雅高效的解决这个问题;先跟随官方的示例做个初步的认识。 System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容…...

嵌入式——RTC内置实时时钟
学习目标 理解原理图RTC设计部分掌握初始化RTC掌握设置时间掌握读取时间学习内容 RTC原理图 RTC结构框图 RTC时钟 开发流程 加载依赖。gd32f4xx_rtc.c,gd32f4xx_pmu.c初始化RTC。时钟配置。获取时钟。RTC初始化 // 电池管理加载 rcu_periph_clock_enable(RCU_PMU); pmu_back…...

nodejs微信小程序+python+PHP的热带野生动物园景点预约订票系统的设计与实现-计算机毕业设计推荐
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...

ASP.NET MVC的5种AuthorizationFilter
一、IAuthorizationFilter 所有的AuthorizationFilter实现了接口IAuthorizationFilter。如下面的代码片断所示,IAuthorizationFilter定义了一个OnAuthorization方法用于实现授权的操作。作为该方法的参数filterContext是一个表示授权上下文的AuthorizationContext对…...
C语言初学8:函数和作用域
一、函数 函数声明告诉编译器函数的名称、返回值类型和参数。在一个源文件中定义函数且在另一个文件中调用函数时,函数声明是必需的。函数定义提供了函数的实际主体。...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...

GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...