MySQL的日志种类
MySQL的日志种类
日志种类大体分为以下几种
错误日志 (Error Log):就像快递公司的客服投诉和系统故障记录本。
二进制日志 (Binlog):就像快递公司的所有包裹出入库的流水账。
重做日志 (Redo Log):就像快递仓库门口的临时装卸记录板。
回滚日志 (Undo Log):就像快递公司的包裹退回记录单。
慢查询日志 (Slow Query Log):就像快递公司的效率监控报告。
通用查询日志 (General Query Log):就像快递公司的全方位监控录像。
分析
- Error Log
他主要是记录MySQL服务器启动、运行、停止过程中一些严重的警告和错误信息
再my.cnf中配置:
[mysqld] |
- Binlog - 核心
这是一个逻辑日志,记录所有更改数据的SQL语句或数据行,但不包括SELECT和SHOW这类的查询
主要应用场景有
- 主从复制
- 数据恢复
- 审计
在my.cnf中配置
[mysqld] |
- Redo Log
这是一个物理日志,记录的是数据页的物理变化
先写日志,再写磁盘。通过顺序IO写日志代替随机IO写数据页,提升了事务提交速度
[mysqld] |
通常是默认打开的,无需改动
Redo Log是循环写入的,写满第一个文件ib_logfile0后再写第二个ib_logfile1,全部写满后回溯到第一个文件覆盖写入
Undo Log - InnoDB特有
这是一个逻辑日志,记录的是SQL的反向操作,比如INSERT INTO t VALUES(1,2,3),Undo Log记录的是DELETE FROM t WHERE id = 1
主要用于事务回滚以及MVCC(实现一致读)
不需要额外配置,完全由InnoDB管理。当事务回滚或该版本无人使用时,对应的UndoLog空间会被自动清理Slow Query Log
记录执行时间超过阈值(long_query_time)的SQL语句
[mysqld] |
- General Query Log
记录所有客户端链接和执行的SQL语句,信息量太大,严重影响性能
[mysqld] |
相关资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 花海!
