MySQL日志的作用简述

MySQL中的三大日志-redo log、undo log和bin log

redo log

redo log也叫重做日志,是Innodb存储引擎生成的日志,记录的是物理级别上的页修改操作,为MySQL提供了崩溃恢复的能力,实现了事务ACID中的持久性

undo log

undo log叫做回滚日志或撤销日志,在事务执行变更操作之前需要先将相反的操作写入undo log,通过它可以让事务回滚操作,保证了事务ACID中的原子性一致性undo log也是实现多版本控制(MVCC)的基础。

bin log

bin logbinary log,二进制日志文件,也叫作变更日志(update log),它记录了所有更新数据库的语句(如DDLDML语句)并以二进制的形式保存在磁盘中,给数据库提供了数据恢复数据复制的能力。

其他几种日志-慢查询日志、通用查询日志、错误日志和中继日志

slow query log

慢查询日志(slow query log):记录所有执行时间超过long_query_time的所有查询,方便开发者对查询进行优化。

general query log

通用查询日志(general query log):记录用户的所有操作,包括所有连接的起始时间和终止时间,以及连接发送给数据库服务器的所有指令,对我们复原操作的实际场景、发现问题,甚至是对数据库操作的审计都有很大的帮助。

error log

错误日志(error log):记录MySQL服务的启动、运行或停止MySQL服务时出现的问题,方便我们了解服务器的状态,从而对服务器进行维护。

relay log

中继日志(relay log):用于主从服务器架构中,从服务器用来存放主服务器bin log内容的一个中间文件。从服务器通过读取中继日志的内容,来同步主服务器上的操作。

具体介绍可以参考

MySQL日志之red

MySQL日志之undo

MySQL日志之bin