当前位置:网站首页>mysql的事务
mysql的事务
2022-07-17 05:08:00 【HjasnJH】
事务是什么?
事务将数据库从一种一致性状态转换为另一种一致性状态,事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成;在数据库提交事务时,可以确保要么所有修改都已经保存,要么所有修改都不保存;事务是访问并更新数据库各种数据项的一个程序执行单元。
在 MySQL innodb 下,每一条语句都是事务;可以通过 set autocommit = 0; 设置当前会话手
动提交;
事务的ACID特性
原子性(A)
事务要么提交,要么回滚
一致性(C)
一致性由业务定义,指事务从一种一致性状态转换为下一种状态时,其业务约束没有被破坏,比如唯一键仍然为唯一键。
隔离性(I)
事务的隔离指事务的执行与其他事务相互隔离,通过MVCC(多版本并发控制)和锁来实现。
持久性(D)
事务提交后,事务的操作将会被持久化而不丢失。
常见事务语句
-- 显示开启事务
START TRANSACTION | BEGIN
-- 提交事务,并使得已对数据库做的所有修改持久化
COMMIT
-- 回滚事务,结束用户的事务,并撤销正在进行的所有未提交的修改
ROLLBACK
-- 创建一个保存点,一个事务可以有多个保存点
SAVEPOINT identifier
-- 删除一个保存点
RELEASE SAVEPOINT identifier
-- 事务回滚到保存点
ROLLBACK TO [SAVEPOINT] identifier事务可能出现的并发异常
1、脏读(读未提交)
事务(A)可以读到另外一个事务(B)中未提交的数据;也就是事务A读到脏数据;
2、不可重复读(读已提交)
事务(A) 可以读到另外一个事务(B)中提交的数据;
3、幻读(REPEATABLE READ)
事务中一次读操作不能支撑接下来的业务逻辑;常发生在一个事务中一次读判断接下来写操作失
败的情况;
四种隔离级别
READ UNCOMMITTED
读未提交;该级别下读不加锁,写加排他锁,写锁在事务提交或回滚后释放锁
READ COMMITTED
读已提交;从该级别后支持 MVCC (多版本并发控制),也就是提供一致性非锁定读;此时读取操作读取历史快照数据;该隔离级别下读取历史版本的最新数据,所以读取的是已提交的数据
READ COMMITTED
可重复读;该级别下也支持 MVCC,此时读取操作读取事务开始时的版本数据;
SERIALIZABLE
可串行化;该级别下给读加了共享锁;所以事务都是串行化的执行;此时隔离级别最严苛;
不同隔离级别下的并发异常

边栏推荐
猜你喜欢

微信小程序 学习笔记

Cesium 綁定鼠標事件和移除鼠標事件

MySQL optimization

uni-app 条件编译#ifdef #endif 兼容多个终端

vscode终端无法使用解决的办法

Applet cloud development upload pictures to cloud storage

Cesium 绑定鼠标事件和移除鼠标事件

Use echars to realize water drop, ring, segmentation, stacking, organization chart, map outline and other charts

小程序editor富文本编辑使用及rich-text解析富文本

微信小程序云开发使用方法-1
随机推荐
CityEngine 三维管道建模教程
web3js开发技术
循环赛制日程表问题
Es6 真实案例解构(多维数组对象)全新案例:
Easypoi excel simple export
Applet cloud development upload pictures to cloud storage
Submit the uniapp form (input, radio, picker) to get the parameter value
2.6.2 memory leakage
数据可视化
微信小程序云开发使用方法-1
Use echars to realize water drop, ring, segmentation, stacking, organization chart, map outline and other charts
MySQL optimization
<script>标签内容详解
Applet cloud development form submission and data acquisition in the page
Baidu map realizes thermal map
[ES6] quickly print user information to the page
【C语言—零基础第七课】顺序结构与选择结构
Uniapp uses uview to realize folding panel
2020-10-22
轮播图移动速度(匀速,缓动)案例归总