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 log即binary log,二进制日志文件,也叫作变更日志(update log),它记录了所有更新数据库的语句(如DDL和DML语句)并以二进制的形式保存在磁盘中,给数据库提供了数据恢复和数据复制的能力。
其他几种日志-慢查询日志、通用查询日志、错误日志和中继日志
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内容的一个中间文件。从服务器通过读取中继日志的内容,来同步主服务器上的操作。
具体介绍可以参考: