-- 开始事务START TRANSACTION; -- 回滚事务ROLLBACK;-- 提交事务COMMIT;
ROLLBACK 回滚事务只能回滚未提交的事务。且在 START TRANSACTION 后面的操作要么全部实行,要么都不实行,从而保持原子性。
MySQL 日志1. redolog:重做日志
是InnoDB存储引擎的一种日志文件,用于记录事务的修正操作,以担保事务的持久性和原子性。redolog是循环写入的,每次写满一个文件后,会切换到下一个文件。redolog的浸染是在数据库崩溃或重启时,可以根据日志文件规复数据。
2. undolog:回滚日志也是InnoDB存储引擎的一种日志文件,用于记录事务中修正过的数据的原始值,以便在事务回滚时,可以规复数据到原始状态。undolog也是循环写入的,每次写满一个段后,会切换到下一个段。undolog的浸染是在事务失落败或用户主动回滚时,可以撤销数据的修正。
3. binlog:二进制日志
是MySQL做事器层的一种日志文件,用于记录所有DDL(数据定义措辞)和DML(数据操作措辞)的语句,以及事务的提交或回滚。binlog是追加写入的,每次写满一个文件后,会天生一个新的文件。binlog的浸染是在数据库备份或规复时,可以重放日志文件中的语句,以达到数据同等性的目的。