当前位置:网站首页>Mysql_13 事务
Mysql_13 事务
2022-08-05 00:01:00 【萨科塔资深干员】
事务
事务是一组不可分割的操作集合,要么都成功执行,要么都失败。如银行账户数据库操作,一个人给另一个人转账1000元,那么这两个人的update操作就是不可分割的,不然如果有一个操作成功执行另一个没有,就可能银行平白无故少了1000或者收款人没收到钱。
事务的步骤:
- 开启事务
- 执行一条条操作。这期间如果有失败则事务回滚。
- 全部执行完后提交事务。默认mysql是自动提交事务的,每执行一条语句就会提交一条。
开启事务
select @@autocommit;
1:自动提交
0:手动提交
set @@autocommit=0;-- 开启手动提交
rollback;-- 回滚
commit;-- 提交
或者在@@autocommit=1时临时开启事务:
start transaction;-- 开启事务
事务四大特性 ACID
atomicity 原子性:事务是不可分割的最小操作单元。
consistency 一致性:所有数据保持一致状态。
isolation 隔离性:事务不受外部干扰,独立进行。
durability 持久性:提交或回滚后,事务对数据库的操作就是永久的。
并发事务问题
多个事务同时进行时会出现的问题。
脏读:一个事务读到另一个事务未提交的数据(Read uncommitted会发生)
解决后:(给要读取的左边的窗口设置 read-committed 隔离级别)
不可重复读:一个事务前后读了同一个数据两次,两次值不一样。因为其他事务在这中间提交过一次。
幻读:一个事务插入一条不存在的数据时,其他事务先插入了,导致它插入失败。
开启序列化后,其他事务插入会卡住,等待当前事务插入完成后再执行插入操作。
解决并发问题——隔离级别
select @@TRANSACTION_ISOLATION;
如上语句查看当前数据库隔离级别。
set session/global TRANSACTION ISOLATION LEVEL SERIALIZABLE;-- 设置当前会话/全局事务隔离级别为serializable
边栏推荐
- #yyds干货盘点#交换设备丢包严重的故障处理
- The applicable scenarios and common product types of the KT148A electronic voice chip ic solution
- What is next-generation modeling (with learning materials)
- 三、实战---爬取百度指定词条所对应的结果页面(一个简单的页面采集器)
- KT148A电子语音芯片ic方案适用的场景以及常见产品类型
- 情人节---快来学习一下程序员的专属浪漫吧
- LeetCode Hot 100
- Cython
- Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun
- 小黑leetcode之旅:95. 至少有 K 个重复字符的最长子串
猜你喜欢
随机推荐
美团二面:Redis与MySQL双写一致性如何保证?
资深游戏建模师告知新手,游戏场景建模师必备软件有哪些?
Handwritten Distributed Configuration Center (1)
How to burn the KT148A voice chip into the chip through the serial port and the tools on the computer
【手撕AHB-APB Bridge】~ AMBA总线 之 AHB
日志(logging模块)
【无标题】
KT148A语音芯片怎么烧录语音进入芯片里面通过串口和电脑端的工具
KT6368A蓝牙的认证问题_FCC和BQB_CE_KC认证或者其它说明
小黑leetcode冲浪:94. 二叉树的中序遍历
10 个关于 Promise 和 setTimeout 知识的面试题,通过图解一次说透彻
上课笔记(6)(2)——#742. 周末舞会
MYS-6ULX-IOT 开发板测评——使用 Yocto 添加软件包
@Async注解的作用以及如何实现异步监听机制
大师教你3D实时角色制作流程,游戏建模流程分享
Xiaohei's leetcode journey: 95. Longest substring with at least K repeating characters
基于深度学习的路面坑洞检测(详细教程)
【云原生--Kubernetes】Pod控制器
Huggingface入门篇 II (QA)
MVCC是什么