MySQL 中的事务(Transaction) 事务是一组操作的集合这些操作要么全部成功要么全部失败保证数据的一致性。它是数据库保证数据完整性的核心机制。一、事务的四大特性ACID特性含义解释原子性Atomicity要么全部成功要么全部失败转账扣钱和加钱必须同时成功或同时失败一致性Consistency事务前后数据状态一致转账前后总金额不变隔离性Isolation事务之间互不干扰两个事务同时操作同一数据时互相不可见持久性Durability事务提交后数据永久保存提交后即使系统崩溃数据也不会丢失二、事务的基本操作1. 控制事务的 SQL 语句语句作用START TRANSACTION/BEGIN开始一个事务COMMIT提交事务将修改永久保存ROLLBACK回滚事务撤销所有修改SAVEPOINT name设置保存点ROLLBACK TO SAVEPOINT name回滚到指定保存点RELEASE SAVEPOINT name删除保存点2. 基本使用-- 开始事务 START TRANSACTION; -- 执行操作 UPDATE accounts SET balance balance - 100 WHERE id 1; UPDATE accounts SET balance balance 100 WHERE id 2; -- 检查结果 SELECT * FROM accounts; -- 提交事务确认修改 COMMIT; -- 或回滚事务撤销修改 -- ROLLBACK;3. 带保存点的事务START TRANSACTION; -- 操作1 UPDATE accounts SET balance balance - 100 WHERE id 1; -- 设置保存点 SAVEPOINT sp1; -- 操作2可能失败 UPDATE accounts SET balance balance 100 WHERE id 2; -- 如果操作2失败回滚到保存点 ROLLBACK TO SAVEPOINT sp1; -- 操作3 UPDATE accounts SET balance balance 100 WHERE id 3; -- 提交事务 COMMIT;三、事务隔离级别1. 隔离级别隔离级别脏读不可重复读幻读并发性能READ UNCOMMITTED可能可能可能最高READ COMMITTED不会可能可能中等REPEATABLE READ不会不会可能较低SERIALIZABLE不会不会不会最低2. 查看和设置隔离级别-- 查看当前隔离级别 SELECT transaction_isolation; -- 或 SHOW VARIABLES LIKE transaction_isolation; -- 设置全局隔离级别 SET GLOBAL transaction_isolation READ-COMMITTED; -- 设置当前会话隔离级别 SET SESSION transaction_isolation READ-COMMITTED;四、隔离级别的并发问题1. 脏读Dirty Read一个事务读取了另一个未提交事务的数据。时间线 事务ABEGIN → 修改数据 → 未提交 事务BBEGIN → 读取数据 → 读到了事务A未提交的数据脏读 事务AROLLBACK撤销修改2. 不可重复读Non-Repeatable Read同一事务内两次读取同一数据结果不同。时间线 事务ABEGIN → 读取数据 → 结果100 事务BBEGIN → 修改数据 → 提交 事务A再次读取数据 → 结果200和第一次不一样3. 幻读Phantom Read同一事务内两次查询结果集的行数不同。时间线 事务ABEGIN → 查询所有用户 → 查到10条 事务BBEGIN → 插入新用户 → 提交 事务A再次查询所有用户 → 查到11条多了1条像幻觉一样五、默认隔离级别版本默认隔离级别MySQL 5.7REPEATABLE READMySQL 8.0REPEATABLE READMySQL 的REPEATABLE READ通过MVCC多版本并发控制解决了幻读问题在 InnoDB 引擎下。其他1、短事务优先事务越短锁持有时间越短并发越高。2、适当的隔离级别根据业务需求选择最低的隔离级别。3、避免事务中交互不要在事务中等待用户输入。

相关新闻

最新新闻

AI时代求职攻略:五大工具提升简历通过率

AI时代求职攻略:五大工具提升简历通过率

1. 项目背景与核心价值2026届毕业生正面临一个前所未有的就业环境:AI技术已深度渗透招聘流程,从简历筛选到视频面试,算法系统正在重塑求职生态。据LinkedIn最新统计,83%的500强企业采用AI进行初轮简历筛选,而普通求职者…

2026/8/21 8:52:41
【单片机课设毕设项目】基于 STM32 的自动通风与加热一体化温控装置开发 基于 STM32 单片机的实时温度显示智能调控系统(011204)

【单片机课设毕设项目】基于 STM32 的自动通风与加热一体化温控装置开发 基于 STM32 单片机的实时温度显示智能调控系统(011204)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/21 8:52:41
质因数分解的工程陷阱:从蓝桥杯国赛看边界与格式规范

质因数分解的工程陷阱:从蓝桥杯国赛看边界与格式规范

1. 这道题为什么让32%的国赛选手当场卡壳?——从蓝桥杯真题看质因数分解的本质陷阱“分解质因数”四个字写在试卷上,看起来像初中数学课后习题。可当它出现在第12届蓝桥杯国赛Python组最后一道编程题时,现场监控数据显示:近三分之…

2026/8/21 8:52:41
Halcon测量模型核心模块p_do_metrology_model深度解析与工程实践

Halcon测量模型核心模块p_do_metrology_model深度解析与工程实践

1. 项目概述:深入Halcon测量核心如果你在工业视觉领域摸爬滚打过一阵子,尤其是处理过精密尺寸测量、位置度评价这类活,那你对Halcon的metrology_model(测量模型)一定不陌生。它几乎是Halcon里做高精度、可重复性测量的…

2026/8/21 8:52:41
监听控制器:音乐制作中的音频信号管理与监听环境优化指南

监听控制器:音乐制作中的音频信号管理与监听环境优化指南

这次我们来看一个针对混音初学者的核心硬件知识教学:监听控制器。对于刚接触音乐制作的朋友来说,混音台、声卡、监听音箱这些设备已经够复杂了,突然又冒出一个“监听控制器”,它到底是干什么的?是不是必需的&#xff1…

2026/8/21 8:52:41
VMware 网络模式详解:桥接、NAT、仅主机模式完全指南

VMware 网络模式详解:桥接、NAT、仅主机模式完全指南

前言 随着 Linux 的普及,越来越多的人选择使用虚拟机软件来搭建学习环境,以避免购置实体服务器的成本。VMware Workstation 和 VirtualBox 是其中常用的选择。然而,初学者在使用 VMware 时,网络连接配置往往是遇到问题最多的环节。…

2026/8/21 8:47:41