面试题答案
一键面试- 二进制日志(Binary Log):
- 用途:记录数据库的所有更改操作,用于数据备份、恢复以及主从复制。在主从复制中,主库将二进制日志发送给从库,从库通过重放日志来保持与主库数据一致;备份时,可基于二进制日志恢复到某个时间点的数据状态。
- 错误日志(Error Log):
- 用途:记录MySQL服务器启动、运行或停止过程中遇到的错误信息。有助于数据库管理员快速定位和解决服务器运行时出现的问题,比如配置错误、文件系统问题等。
- 慢查询日志(Slow Query Log):
- 用途:记录执行时间超过指定阈值(可配置)的SQL查询。通过分析慢查询日志,开发人员和数据库管理员能找出执行效率低下的查询语句,进行针对性优化,提高数据库整体性能。
- 中继日志(Relay Log):
- 用途:在主从复制架构中,从库接收主库发送的二进制日志并存储在中继日志中,然后从库的SQL线程从中继日志读取日志内容并应用到自身数据库,确保主从数据同步。
- 事务日志(InnoDB Redo Log和InnoDB Undo Log):
- InnoDB Redo Log(重做日志):用于崩溃恢复(crash - recovery),记录数据库物理层面的修改操作。当数据库发生崩溃后,可通过重做日志将未完成的事务回滚,并将已提交的事务重新应用,保证数据的一致性和完整性。
- InnoDB Undo Log(回滚日志):用于事务回滚和MVCC(多版本并发控制)。在事务执行过程中,若需要回滚,可依据回滚日志将数据恢复到事务开始前的状态;同时,在MVCC机制中,回滚日志用于提供旧版本的数据,实现高并发下的读 - 写、写 - 读不冲突。