1、事务的四大特性(ACID)
简称 | 全称 | 中文名 | 释义 |
---|
A | Atomicity | 原子性 | 一个事务能够正确地将数据从一个一致性的状态,变换到另一个一致性的状态 |
C | Consistency | 一致性 | 一个事务所有的操作,要么全部执行,要么就一个都不执行,即 all-or nothing。它可以让事务在出现故障等原因,导致不能全部执行成功时,将已经执行的部分操作,回滚到事务前的状态 |
I | Isolation | 隔离性 | 如果多个事务并发执行,那么执行结果和一个一个串行执行是一样的。它可以使事务在执行时,不会受到其他事务的影响。不过在实践中,由于考虑到性能的问题,一般都使用较弱一点的保证 |
D | Durability | 永久性 | 如果一个事务已经提交,不论什么原因,它产生的结果都是永久存在的,它保证了事务的结果不会丢失 |
2、事务控制语句
命令 | 含义 |
---|
BEGIN/START TRANSACTION | 显式地开启一个事务 |
COMMIT/COMMIT WORK | 提交事务,并使已对数据库进行的所有修改成为永久性的 |
ROLLBACK/ROLLBACK WORK | 回滚结束用户的事务,并撤销正在进行的所有未提交的修改 |
SAVEPOINT identifier | 创建名为identifier的回滚点,一个事务中可以有多个SAVEPOINT |
RELEASE SAVEPOINT identifier | 删除名为identifier的回滚点,当没有指定的保存点时,执行该语句会抛出一个异常 |
ROLLBACK TO identifier | 把事务回滚到名为identifier的回滚点 |
3、InnoDB存储引擎提供的事务隔离级别
级别 | 含义 |
---|
READ UNCOMMITTED | 读未提交 |
READ COMMITTED | 读已提交(Oracle默认隔离级别) |
REPEATABLE READ | 可重复读(Mysql默认隔离级别) |
SERIALIZABLE | 序列化 |
tips:通过SET TRANSACTION命令可以设置当前会话的隔离级别
4、MySQL事务处理两种方法