外观
Mysql 中有哪些类型的日志,各自的作用是什么?
MySQL
中常见的日志类型包括:
- 错误日志(
Error Log
)- 作用:记录
MySQL
服务在启动、运行或停止过程中出现的错误、警告和信息。 - 用途:用于问题排查和系统维护。
- 存储位置:由
log_error
参数指定,默认在MySQL
数据目录下。
- 作用:记录
- 二进制日志(
Binlog
)- 作用:记录所有修改数据的
SQL
语句(包括DDL
和DML
)。 - 用途:事务提交后生成,用于主从复制、数据恢复和增量备份。
- 存储位置:
MySQL Server
层,文件名通常为mysql-bin.000001
等。
- 作用:记录所有修改数据的
- 重做日志(
Redo Log
)- 作用:记录事务对数据页的修改。
- 用途:用于崩溃恢复,保证事务的持久性(
Durability
)。 - 存储位置:
InnoDB
存储引擎层,文件通常为ib_logfile0
、ib_logfile1
等。
- 回滚日志(
Undo Log
)- 作用:记录事务执行前的数据状态。
- 用途:用于事务回滚和多版本并发控制(
MVCC
)。 - 存储位置:
InnoDB
存储引擎层,存储在共享表空间或独立的Undo Tablespace
中。
- 通用查询日志(
General Query Log
)- 作用:记录所有客户端发送到
MySQL
的查询语句。 - 用途:用于审计和调试。
- 存储位置:由
general_log_file
参数指定,默认在MySQL
数据目录下。
- 作用:记录所有客户端发送到
- 慢查询日志(
Slow Query Log
)- 作用:记录执行时间超过
long_query_time
的查询语句。 - 用途:用于性能优化。
- 存储位置:由
slow_query_log_file
参数指定,默认在MySQL
数据目录下。
- 作用:记录执行时间超过
- 中继日志(
Relay Log
)- 作用:在主从复制中,从服务器用于存放主服务器
Binlog
的中间文件。 - 用途:用于从服务器的复制过程。
- 存储位置:从服务器的
MySQL
数据目录下,文件名通常为mysql-relay-bin.000001
等。
- 作用:在主从复制中,从服务器用于存放主服务器