MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?
MySQL包括三种类型的日志,分别是binlog、redolog和undolog,各有不同的特点和作用。
binlog
Binary log,是MySQL中的二进制日志文件,用于记录MySQL服务器上的所有更改操作。可以记录所有的DDL(Data Definition Language)和DML(Data Modification Language)操作,包括对表结构的更改、数据的插入、修改和删除等。binlog是在事务提交后生成的,因此可以用来恢复数据库。
redolog
Redo log,用于恢复数据,保证数据的一致性和持久性。当MySQL发生修改时,redolog会将这些操作记录下来,并写入磁盘。当MySQL发生宕机或崩溃时,通过重放redolog就可以恢复数据。
undolog
用于回滚操作。当MySQL发生事务回滚时,undolog会记录这些操作并将其写入磁盘。当MySQL需要回滚时,通过重放undolog就可以回滚事务。
区别
binglog和redolog都是MySQL中的二进制日志,但是他们的作用和实现方式有所不同。binlog是MySQL记录所有的操作,而redolog是用于保证数据的一致性和持久性。此外,binlog是逻辑日志,redolog是物理日志。binlog记录的是SQL语句,而redolog记录的是数据页的修改,所以binlog可以跨平台使用,而redolog不能。undolog和redolog的区别是,undolog是用于回滚操作的,而redolog是用于恢复数据的。
#MySQL(21)评论