MySQL 事务 —— 保证数据一致性

分类:数据库 时间:2026-02-24 浏览:1
1

一、事务的定义

事务是一组不可分割的数据库操作,要么全部执行成功,要么全部失败回滚,用于保证数据的一致性(如转账、订单创建等场景)。

二、事务的 ACID 特性

  • 原子性(Atomicity):事务是一个整体,不可拆分;

  • 一致性(Consistency):事务执行前后数据状态一致;

  • 隔离性(Isolation):多个事务互不干扰;

  • 持久性(Durability):事务提交后,数据永久保存。

三、事务操作

MySQL 默认自动提交事务(每条 SQL 执行后自动提交),需手动开启事务:

-- 1. 关闭自动提交
SET autocommit = 0;

-- 2. 开启事务
START TRANSACTION;

-- 3. 执行事务操作(如转账:A扣100,B加100)
UPDATE user SET balance = balance - 100 WHERE id=1;
UPDATE user SET balance = balance + 100 WHERE id=2;

-- 4. 提交事务(所有操作生效)
COMMIT;

-- 若出错,回滚事务(恢复到事务前状态)
-- ROLLBACK;

-- 5. 恢复自动提交
SET autocommit = 1;

四、事务隔离级别

MySQL 有 4 种隔离级别,解决脏读、不可重复读、幻读问题:

-- 查看当前隔离级别
SELECT @@tx_isolation;

-- 设置隔离级别(如READ COMMITTED)
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;


隔离级别解决问题性能
READ UNCOMMITTED无(最低级别,会脏读)最高
READ COMMITTED脏读较高
REPEATABLE READ脏读、不可重复读(MySQL 默认)中等
SERIALIZABLE所有问题(幻读)最低

总结

  1. 事务用于保证多操作的原子性,核心是 COMMIT(提交)和 ROLLBACK(回滚);

  2. 事务具有 ACID 四大特性,是数据一致性的核心保障;

  3. MySQL 默认隔离级别是 REPEATABLE READ,可根据业务调整。

文章链接:http://www.qwkf.cn//shujuku/38.html
文章标题:MySQL 事务 —— 保证数据一致性

相关阅读