《MySQL》事务

news2024/11/28 11:47:18

文章目录

  • 概念
  • 事务的操作
  • 属性(aicd)

概念

一组DML语句,这组语句要一次性执行完毕,是一个整体

为什么要有事务?

为应用层提供便捷服务

事务的操作

有一stu表

在这里插入图片描述

# 查看事务提交方式(默认是开启的)
show variables like 'autocommit'; 
# 设置提交方式
set autocommit=0;  # 关闭自动提交
set autocommit=1;  # 开启自动提交

在这里插入图片描述

# 开始事务
begin; / start transation;
# 提交事务
commit;
# 回滚
rollback;
# 设置回滚点
save point [回滚点名];

在这里插入图片描述

属性(aicd)

  • 原子性(atomicity)
  • 隔离性(isolation)
  • 持久性(durablility)
  • 一致性(consistency)

原子,隔离,持久 ----> 一致 (aid->c)

这里重点讲一下隔离性的隔离级别,隔离级别体现隔离性。

隔离级别分为四种

类型作用效果存在问题
读未提交【read uncommitted】事务间并行操作,互相影响脏读
读提交【read committed】事务提交后互相影响不可重复读
(系统默认级别) 可重复读【repeatable read】事务间并发独立执行,全部提交完,才得到结果幻读
串行化【serializable】事务串行修改,可并发查询并发读低,效率低

在了解隔离级别前,先掌握下面语句

# 查看全局的隔离级别
select @@global.tx_isolation(默认是repeatable)
# 查看本次会话的隔离级别(session.可以省略)
select @@session.tx_isolation  # 找全局的进行初始化
# 设置隔离级别
set [session/global] transation isolation level [read uncommitted/read committed/repeatable read/serializable]

在这里插入图片描述

  • 读未提交
    先设置隔离级别为read uncommitted
    在这里插入图片描述在这里插入图片描述

两个事务同时进行,发现每次查询的结果都不一样,我们把一个事务在执行中,读到另一个执行中事务的更新(或其他操作)但是未commit的数据,这种现象叫做脏读

  • 读提交
    先设置隔离级别为read committed
    在这里插入图片描述
    在这里插入图片描述

两个事务同时进行,一个事务提交之后,另一个事务的结果才发生影响

同一个事务内,同样的读取,在不同的时间段(依旧还在事务操作中!),读取到了不同的值,这种现象叫做不可重复读

  • 可重复读
    先设置隔离级别为 repeatable read
    在这里插入图片描述
    在这里插入图片描述
    可重复读的隔离性就比较完善了,事务并发执行间的修改会不影响,执行完后得到它们的最终结果。

  • 串行化
    先设置隔离级别为 serializable
    在这里插入图片描述
    在这里插入图片描述

  • 不可重复读的重点是修改和删除:同样的条件, 你读取过的数据,再次读取出来发现值不一样了
  • 幻读的重点在于新增:同样的条件, 第1次和第2次读出来的记录数不一样。

在这里插入图片描述

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

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

相关文章

智能照明及控制系统在医院建筑中的应用

摘要:现阶段,我国的社会经济的发展水平不断提高,为智能照明系统的发展带来了新的契机。文章主要介绍了几类智能照明系统,分析了其优点,并介绍了智能照明系统在医院建筑中的具体应用,具有一定的参考价值。 …

数据结构顺序表,实现增删改查

一、顺序表结构体定义 #define MAXSIZE 8 //定义常量MAXSIZE,表示数据元素的最大个数为8 typedef int datatype; //重定义int类型,分别后期修改顺序表中存储的数据类型 typedef struct {int len; //顺序表长度datatype data[MAXSIZE…

微服务架构介绍 - SpringCloud Alibaba

1. 单体架构vs微服务架构 1.1 单机架构 1.1.1 什么是单体架构 一个归档包(例如war格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构。(就是一个war包打天下&a…

Service:微服务架构的应对之道

Service 的工作原理和 LVS、Nginx 差不多,Kubernetes 会给它分配一个静态 IP 地址,然后它再去自动管理、维护后面动态变化的 Pod 集合,当客户端访问 Service,它就根据某种策略,把流量转发给后面的某个 Pod。 Service 使…

小程序form表单验证,validate 在更新数据以后不能验证?还是提示同样的错误

报错&#xff1a; 一直报手机号码必须填写&#xff0c;但是我已经填写了。 解决&#xff1a; 花了2个小时&#xff0c;最后发布是模式models写错了。 改完之后&#xff0c;终于提示别的错误了&#xff1a; 源码&#xff1a; //wxml <view class"welcome">欢…

一款挖掘xss漏洞的工具

xsshelp 闲着没事随便写的一个辅助挖掘xss漏洞的工具&#xff08;主要手懒为了省事&#xff0c;就把每回挖xss的一个比较好用的思路简单给用工具实现了下&#xff09; xsshelp version: 1.0.0Usage: [-ut] [-u url] [-t thread] [-h help]Options: -h this help -t intth…

一文搞清楚专利申请全部流程

专利检索网站&#xff1a;https://pss-system.cponline.cnipa.gov.cn/conventionalSearch 一、专利的相关概念 专利包含三种含义&#xff1a;1.专利权2.受到专利保护的发明创造3.专利文献 专利的类别&#xff1a;1.发明2.实用新型3.外观设计&#xff08;具体含义自行上网查询…

电脑提示缺少msvcp120.dll怎么办?分享几个靠谱的解决方法

msvcp120.dll是Microsoft的一个动态链接库文件。它是许多应用程序和游戏所依赖的一个重要文件&#xff0c;它包含了一些用于C程序开发的函数和组件。当你在运行某个程序时&#xff0c;如果系统找不到msvcp120.dll文件&#xff0c;就会出现错误提示&#xff0c;例如“找不到msvc…

ceph安装部署

Ceph 简介 存储基础 单机存储设备 单机存储的问题 分布式存储的类型 分布式存储&#xff08;软件定义的存储 SDS&#xff09; Ceph 架构 Ceph 核心组件 ​编辑 Pool中数据保存方式支持两种类型 OSD 存储后端 Ceph 数据的存储过程 Ceph 集群部署 基于 ceph-deploy …

whisper报错:UserWarning: FP16 is not supported on CPU; using FP32 instead

报错&#xff1a; PS D:\> whisper.exe .\dz.wav --language en --model medium C:\xxPython310\lib\site-packages\whisper\transcribe.py:114: UserWarning: FP16 is not supported on CPU; using FP32 insteadwarnings.warn("FP16 is not supported on CPU; using …

fl studio20怎么设置中文?flstudio21怎么没有language选项?

fl studio20怎么设置中文&#xff1f; fl studio 20&#xff08;Fruity Loops Studio&#xff09;是一款专业的音频处理、音乐编曲和制作软件&#xff0c;也被网友称为水果音乐制作软件。它的新功能包括对DirectWave 的一些改进&#xff0c;FruityReverb 支持64 位&#xff0c;…

手把手教你配置Jenkins自动化邮件通知

完成基于Jenkins的持续集成部署后&#xff0c;自动化测试执行后&#xff0c;测试结果需要通知到相关人员&#xff0c;除了钉钉通知外我们还可以通过Email通知到对应负责人&#xff0c;这里记录一下测试结果通过Jenkins邮件通知的配置与部署 01、安装插件 方法1&#xff1a; 进…

基于Java+Swing+Mysql学生成绩管理系统

基于JavaSwingMysql学生成绩管理系统 一、系统介绍二、功能展示1.登陆2.学生成绩查询3.学生成绩添加4.学生成绩修改5.学生成绩删除 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了学生成绩的增加、修改、查询、删除 运行环境&#xff1a;eclipse、idea、…

ORB-SLAM2学习笔记3之EuRoc开源数据集运行ORB-SLAM2生成轨迹并用evo工具评估轨迹

文章目录 0 引言1 EuRoc数据集1.1 下载数据1.2 真值轨迹格式转换 2 单目ORB-SLAM22.1 运行ORB-SLAM22.2 evo评估轨迹2.2.1 载入和对比轨迹2.2.2 计算绝对轨迹误差 3 双目ORB-SLAM23.1 运行ORB-SLAM23.2 evo评估轨迹3.2.1 载入和对比轨迹3.2.2 计算绝对轨迹误差 ORB-SLAM2学习笔…

Spark(28):Spark Shuffle解析

目录 0. 相关文章链接 1. ShuffleMapStage与ResultStage 2. HashShuffle解析 2.1. 未优化的HashShuffle 2.2. 优化后的 HashShuffle 3. SortShuffle解析 3.1. 普通SortShuffle 3.2. bypass SortShuffle 0. 相关文章链接 Spark文章汇总 1. ShuffleMapStage与ResultSta…

C语言实现通讯录【文件版】——存档联系人信息

我真的无法对一个追逐梦想的少年生恨 目录 一、源码阅读注意事项 二、文件读取函数及文件读写规则 1.打开文件 2.读写文件 3.关闭文件 大家好&#xff0c;我是纪宁。 上篇文章向大家如何用C语言实现动态版的通讯录&#xff0c;这篇文章将介绍如何用C语言将通讯录的信息写…

2快速入门Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件 开发步骤 第一步&#xff1a;创建Maven工程配置生成的pom.xml文件, 添加spring context基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17) 当添加Spring的基础依赖spring context之后&#xff0c;Maven会自动关联并引入其…

【嵌入式项目】南海无线通信系统的射频子系统

前言 射频子系统是无线通行系统的重要组成部分之一。 射频子系统主要由天线、射频前端和调制解调器组成。其工作原理如下&#xff1a; 1. 发送端将数字信号转换成高频模拟信号&#xff1a;无线通行系统的控制中心或读卡器产生的一组数字信号需要通过数模转换器将其转换为模拟…

图纸加密软件哪些可以用?哪个好?

图纸加密软件是一种用于保护和加密图纸文件的工具。它们可以对图纸文件进行加密&#xff0c;以确保只有授权的人可以访问和查看这些文件。 图纸加密软件通常提供了多种加密算法和安全性措施&#xff0c;以确保图纸的保密性和安全性。此外&#xff0c;一些图纸加密软件还提供了…

Postman:postman多接口顺序执行

Runner的使用 postman不仅可以单独运行某个接口&#xff0c;postman的 Runner模块可以运行多个接口&#xff0c;可以实现真正意义上的自动化接口测试 Runner的主要功能如下 按顺序调用接口&#xff0c;执行用例&#xff1b; 批量发送请求&#xff1b; 对接口数据进行参数化…