什么是 MySQL 事务,以及事务的四大特性与隔离级别
时间: 2024-10-12 19:02:11 浏览: 43
聊聊MySQL事务的特性和隔离级别
MySQL 事务是一组数据库操作,它们被视为单个工作单元,要么全部完成,要么全部回滚,以保证数据的一致性和完整性。当多个 SQL 操作作为事务处理时,如果其中任何一个操作失败,整个事务将不会对数据库产生影响,这就是事务的原子性。
事务的四大特性,也称为 ACID 属性,包括:
1. **原子性** (Atomicity): 即事务要么全部成功,要么全部失败,不会部分完成。如果在事务执行过程中遇到错误,数据库会自动回滚到事务开始前的状态。
2. **一致性** (Consistency): 事务完成后,数据库从一个合法状态变到另一个合法状态,不会违反现有的业务规则和约束条件。
3. **隔离性** (Isolation): 防止并发事务之间的干扰,每个事务看到的是一个"隔离"的数据视图。有四种常见的隔离级别:
- read uncommitted: 最低的隔离级别,可能会看到其他事务未提交的结果。
- read committed: 默认级别,事务只能看到已经提交的数据。
- repeatable read: 同一事务多次读取结果不变,但不能防止幻读(读到其它事务已删除但还未提交的新行)。
- serializable: 提供最高的隔离度,像单线程一样顺序执行事务,但性能开销最大。
4. **持久性** (Durability): 一旦事务提交,其更改就会永久保存在数据库中,不受系统崩溃的影响。
阅读全文