-- 开始事务START TRANSACTION; -- 回滚事务ROLLBACK;-- 提交事务COMMIT;

ROLLBACK 回滚事务只能回滚未提交的事务。
且在 START TRANSACTION 后面的操作要么全部实行,要么都不实行,从而保持原子性。

MySQL 日志1. redolog:重做日志

是InnoDB存储引擎的一种日志文件,用于记录事务的修正操作,以担保事务的持久性和原子性。
redolog是循环写入的,每次写满一个文件后,会切换到下一个文件。
redolog的浸染是在数据库崩溃或重启时,可以根据日志文件规复数据。

2. undolog:回滚日志

也是InnoDB存储引擎的一种日志文件,用于记录事务中修正过的数据的原始值,以便在事务回滚时,可以规复数据到原始状态。
undolog也是循环写入的,每次写满一个段后,会切换到下一个段。
undolog的浸染是在事务失落败或用户主动回滚时,可以撤销数据的修正。

phpmysql事务回滚若何懂得 Mysql 中的事务回滚机制 Webpack

3. binlog:二进制日志

是MySQL做事器层的一种日志文件,用于记录所有DDL(数据定义措辞)和DML(数据操作措辞)的语句,以及事务的提交或回滚。
binlog是追加写入的,每次写满一个文件后,会天生一个新的文件。
binlog的浸染是在数据库备份或规复时,可以重放日志文件中的语句,以达到数据同等性的目的。