MySQL日志文件有哪些

tim-qtp...大约 2 分钟MySQL数据库

MySQL 的日志文件主要包括:

①、错误日志(Error Log):记录 MySQL 服务器启动、运行或停止时出现的问题。

你启动 MySQL 时失败了,错误日志会告诉你是因为配置文件写错了,还是端口被占用了

②、慢查询日志(Slow Query Log):记录执行时间超过 long_query_time 值的所有 SQL 语句。这个时间值是可配置的,默认情况下,慢查询日志功能是关闭的。可以用来识别和优化慢 SQL。

比如加个索引

③、一般查询日志(General Query Log):记录所有 MySQL 服务器的连接信息及所有的 SQL 语句,不论这些语句是否修改了数据。

④、二进制日志(Binary Log):通过追加的方式,记录了所有修改数据库状态的 SQL 语句(DDL和DML),以及每个语句的执行时间,如 INSERT、UPDATE、DELETE 等,但不包括 SELECT 和 SHOW 这类的操作。binlog 记录的是 逻辑日志(SQL 语句),而不是具体的数据块或页面修改。

如果有一天数据库坏了,你可以用这个日志把数据恢复到坏之前的状态;

主从复制也是靠这个日志,主库把日志发给从库,从库照着日志改数据。

⑤、重做日志(Redo Log):记录了对于 InnoDB 表的每个写操作,不是 SQL 级别的,而是物理级别的,主要用于崩溃恢复。

直接把数据写入磁盘很慢,因为磁盘 I/O 性能差。

为了提高性能,InnoDB 先把修改记录写入 redo log(顺序写入),然后再把数据慢慢刷入磁盘(异步写入)。

如果在刷入磁盘之前崩溃,重启时 InnoDB 通过 redo log 恢复未完成的数据修改。

因为 redo log 是物理日志,记录“某页(Page)某位置的数据被修改为某值”

⑥、回滚日志(Undo Log,或者叫事务日志):记录数据被修改前的值,用于事务的回滚。