MySQL 事务 —— 保证数据一致性
一、事务的定义
事务是一组不可分割的数据库操作,要么全部执行成功,要么全部失败回滚,用于保证数据的一致性(如转账、订单创建等场景)。
二、事务的 ACID 特性
原子性(Atomicity):事务是一个整体,不可拆分;
一致性(Consistency):事务执行前后数据状态一致;
隔离性(Isolation):多个事务互不干扰;
持久性(Durability):事务提交后,数据永久保存。
三、事务操作
MySQL 默认自动提交事务(每条 SQL 执行后自动提交),需手动开启事务:
四、事务隔离级别
MySQL 有 4 种隔离级别,解决脏读、不可重复读、幻读问题:
| 隔离级别 | 解决问题 | 性能 |
|---|---|---|
| READ UNCOMMITTED | 无(最低级别,会脏读) | 最高 |
| READ COMMITTED | 脏读 | 较高 |
| REPEATABLE READ | 脏读、不可重复读(MySQL 默认) | 中等 |
| SERIALIZABLE | 所有问题(幻读) | 最低 |
总结
事务用于保证多操作的原子性,核心是 COMMIT(提交)和 ROLLBACK(回滚);
事务具有 ACID 四大特性,是数据一致性的核心保障;
MySQL 默认隔离级别是 REPEATABLE READ,可根据业务调整。