# 事务
什么是事务?
一个事务就是一个完整的业务逻辑。
是一个最小的工作单元。
例如转账的业务逻辑,就是一个最小的工作单元,要么同时成功,要么同时失败,不可再分。
本质:就是多条 DML 语句同时成功或者同时失败
只有 DML 语句和事务有关系,其他语句无关。
insert
update
delete
因为以上三个语句是操作数据库中数据的
事务是怎么做到同时成功或者同时失败的?
InnoDB:提供一组用于记录事务特性活动的日志文件
在事务执行的过程中,每一条DML的操作都会被记录到“事务特性活动的日志文件”中
在事务执行的过程中,可以提交事务,也可以回滚事务
提交事务: 清空事务性活动的日志文件,将数据全部彻底持久化到数据库表中
标志着事务的结束,并且是一种全部成功的结束
回滚事务: 将之前所有的DML操作全部撤销,并且清空事务性活动的日志文件
回滚事务标志着事务的结束,并且是一种全部失败的结束
# 提交事务、回滚事务
提交事务:commit
回滚事务:rollback (回滚只能回滚到上一次的提交点)
事务对应的单词:transaction
Mysql中默认情况下是自动提交事务的(自动提交)
开启事务
start transaction;
# 事务特性
A:原子性
说明事务是最小工作单元,不可再分
C:一致性
所有事务要求,在同一个事务中,所有操作必须同时成功,或者同时失败,以保证数据的一致性
I:隔离性
A事务和B事务之间具有一定的隔离
D:持久性
事务最终结束的一个保障,事务提交,将没有保存到硬盘上的数据保存到硬盘上