基于MySQL的事务管理

news2024/11/16 9:22:57

目录

概念:多条语句组成一个执行单位

事务的基本操作

MySQL中的事务必须满足A,C,I,D这四个基本特性

事务操作举例——(转账)

事务保存点——SAVEPOINT

事务隔离级别——多线程(并发同时访问)

总结


概念:多条语句组成一个执行单位
 

事务的执行要么成功,要么就返回到事务开始前的状态,这就保证了同一事务操作的同步性和数据的完整性。mysql默认情况下,一条sql语句就是一个事务。

举例:转账分为两个部分来完成。转入和转出,只有这两个部分都能完成才认为转账成功。

A账户给B账户转账100元

  • A账户减少100元

  • B账户增加100元
     

事务的基本操作

  1. 开启事务:START TRANSACTION ——(start transaction)
  2. 事务提交:COMMIT
  3. 回滚事务:ROLLBCAK
  4. 操作流程: 开启事务——>执行语句——>提交事务
     

MySQL中的事务必须满足A,C,I,D这四个基本特性

Atomicity:原子性—— 一个不可分割的最小单元

Consistency:一致性—— 无论是否成功,数据库的状态都是一致性的 ------------mysql是通过日志的变化来记录数据的

lsolation:隔离性—— 事务与事务之间没有影响

Durability:持久性 ——事务一旦提交,则数据库就保持完整

事务操作举例——(转账)

账户表 account(id,name,money)

 代码

#开启事务
START TRANSACTION;
#模拟转出
UPDATE account SET money=money -100 WHERE id=1;
#模拟转入
UPDATE account SET money=money +100 WHERE id=2;
#查询一下
SELECT * FROM account;  
COMMIT;

一个会话层面,事务是建立在一个会话层的

 

 

事务保存点——SAVEPOINT
 

关键字:SAVEPOINT 保存点,也称回滚点

代码

#开启事务
START TRANSACTION;
UPDATE account SET money=money -10 WHERE id=1;
#设置保存点
SAVEPOINT S1;
UPDATE account SET money=money -20 WHERE id=2;
#回滚保存
ROLLBACK TO SAVEPOINT S1;
#查询一下
SELECT * FROM account;  
#提交
COMMIT;

 

事务隔离级别——多线程(并发同时访问)

  • 查看全局隔离 ——@@global.transaction_isolation
  • 当前会话隔离 ——@@session.transaction_isolation
  • 下一事务隔离 ——@@transaction_isolation

所以的隔离级别默认为:REPEATABLE READ (可重复读)

隔离级别

  • 1READ UNCOMMITTED; 脏读

  • 2READ COMMITTED; 读取提交 不能重复读

  • 3REPEATABLE READ;读取提交 可重复读

  • 4SERIALIZABLEl; 可串行化 加锁

设置事务的隔离级别

SET [SESSION| GLOBAL] transaction_isolation LEVEL 级别

总结

  • 事务更有助于任务的执行不被打搅
  • 事务保证的任务执行的完整性、准确性
  • lock的应用,虽然很好,保证了事务不被打搅,但是浪费时间

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

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

相关文章

Mongo的数据操作

文章目录一,创建数据库二,插入数据(一)插入单条数据1,insert2,save(二)插入多条数据三,修改数据四, 更新所有找到匹配的数据五,数据删除&#xff…

极速Go语言入门(超全超详细)-基础篇

文章目录 GoLang概述 Go语言三大牛谷歌创造Golang的原因Golang 的发展历程Golang 的语言的特点 Go语言开发工具Go开发环境配置(sdk下载及配置) 使用开发工具创建第一个Go项目 Go 程序开发的注意事项 官方参考文档 Go学习 Go变量 数据类型 标识符 运算符 键盘输入语句 程序流程…

[附源码]计算机毕业设计JAVA高校贫困生认定系统

[附源码]计算机毕业设计JAVA高校贫困生认定系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myba…

列表的嵌套--Python

#列表的嵌套:在每一个列表中都包含其他列表元素 #获取李四所在列表的值? #获取李四所在的子列表索引,并通过索引获取改子列表值 name_list [[小明,小红,小绿],[Tom,Lily,Rose],[张三,李四,王五]] print(name_list[2]) #在从子列表中通过李四所在的索引…

[翻译] 使用FXGL创建一个非常基本的游戏

游戏要求 首先,让我们为我们的简单游戏定义一些要求: 一个600x600的窗口。屏幕上的玩家,由蓝色矩形表示。可以通过按键盘上的W、S、A或D来移动玩家。UI由一行文本表示。当玩家移动时,UI文本会更新以显示玩家在其生命周期内移动了多少像素。 …

今天给在家介绍一篇基于jsp的旅游网站设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

zookeeper报错length is greater than jute.maxbuffer=1048575

1、场景 最近在给上云项目部署系统,通过压测都已经正式上生产后发现kafka存在异常错误,经排查发现zookeeper也存在错误,怀疑kafka的问题可能是由于zk异常到的,报错如下 2022-11-17 06:26:43,052 [myid:] - WARN [NIOWorkerThr…

HTML学生个人网站作业设计:游戏网站设计——原神首页 1页 带轮播图

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 …

Burpsuite简介及MIME上传绕过实例

目录预备知识1.了解burpsuite2.了解服务端MIME类型检测实验目的实验环境实验步骤一使用Burpsuite的代理功能Target模块实验步骤二使用burpsuite上传绕过服务端MIME类型检测预备知识 1.了解burpsuite Burp Suite是用于攻击web应用程序的集成平台。包含了许多工具,并…

[附源码]Python计算机毕业设计 学生宿舍管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

我们与元宇宙的距离

元宇宙的发展是一个循序渐进的过程,需要经过初始阶段、规划阶段、系统阶段和优化阶段。当前,虽然已经有许多元宇宙完成了搭建,但都是针对单一特定场景的模拟仿真,并且没有实现全面的推广应用,因此我们仍处于元宇宙的初…

浅析多通道接收单元噪声系数的测试

之前一个朋友要测试低噪声放大器(LNA)的噪声系数,但是声称遇到一些麻烦。LNA噪声系数的测试采用Y因子法非常简便,校准完成后直接连接待测件即可测试,可操作性非常强。麻烦在哪里呢? 原来待测件是一个含有四个通道的接收模块&…

2023年三大网络安全威胁不容忽视

2022年已进入尾声,降低数字化风险、增强安全防御能力依然是众多企业组织数字化发展中的重要需求和目标。随着技术的不断进步,网络攻击者的攻击成本不断降低,同时攻击方式更加先进,美国《福布斯》网站在近日的报道中列出了2023年值…

Zoho 如何使用低代码 #1 - 赋予人力资源以技术实力

Zoho 为客户提供了一套跨功能产品,从运行简单的调查到简化复杂的企业组织职能,Zoho 几乎提供了企业的业务运行所需的一切。 组织在新的规范和挑战中不断进行扩展,这就不断需要构建可定制的解决方案。这就是为什么除了现成的应用程序之外&…

第1关:ZooKeeper初体验

ZooKeeper安装方法 由于本实验环境已经安装ZooKeeper并配置,下面主要讲述一般环境的安装方法。 可以从ZooKeeper的官方网站上下载稳定版,下载地址如下:Apache ZooKeeper 下载后,利用tar命令将压缩包解压到/opt/zookeeper-3.4.1…

实验31:温湿度传感器实验

本实验也比较简单 用LCD1602显示温湿度传感器返回的温湿度值 本专栏就要结尾了 希望对大家有一定的帮助 学习就是一点一滴的 01 硬件电路设计 整体电路图 重点还是接口: 因为最后相放一个学生做的大创为结尾彩蛋,所以这里就不再添加报警灯什么的额外操作了 每一个实验…

OVS 和 OVS-DPDK 对比

OVS 目前有两种比较突出的架构,一种是原生的 OVS 架构(使用 kernel 作为 datapath),一种是基于 DPDK 的架构(使用用户空间作为 datapath)。 原生 OVS 原生 OVS 架构如下所示,主要包含两个组件…

冷启动问题分析与解决办法

1、什么是冷启动问题? 在缺乏有价值数据的时候,如何有效地满足业务需求的问题,就是“冷启动问题”。为了沟通方便,下面统一从推荐系统的角度来讲“冷启动问题”,其他业务场景同理。 冷启动问题是机器学习系统中十分常…

完成Zookeeper集群部署

目录一、实验介绍1.1实验内容1.2实验知识点1.3实验环境1.4实验资源1.5实验步骤清单二、实验架构三、实验环境准备四、实验步骤4.1部署Zookeeper集群4.1.1配置hosts文件4.1.2安装Zookeeper软件(master)4.1.3修改zookeeper配置文件4.1.4配置Zookeeper集群4.2验证Zookeeper集群4.2…

python419社区疫情综合管理系统django

目 录 摘 要 I 目 录 I 第1章 绪论 1 1.1课题背景 1 1.2目的和意义 1 1.3研究现状 2 1.4研究内容 3 第2章 关键技术研究 4 开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数…