Q4.You want to log only the changes made to the database objects and data on the MySQL system. Which log willdo this by default?A)error logB)slow query logC)general query logD)binary logE)audit log
一、 选项解析
1. Error Log(错误日志)
错误日志主要用于记录 MySQL 服务器启动、运行或关闭过程中的错误信息、警告和关键事件(如硬件故障或权限问题)。它不记录数据变更操作,因此不符合题意。
2. Slow Query Log(慢查询日志)
慢查询日志记录执行时间超过设定阈值的查询语句(如 long_query_time 设置为 2 秒),用于性能优化。它仅记录慢查询,而非所有数据变更操作,因此排除。
3. General Query Log(通用查询日志)
通用查询日志记录所有客户端连接和执行的 SQL 语句,包括 SELECT 等非变更操作。虽然包含部分数据修改语句,但默认不启用且记录范围过广,并非专门用于变更追踪。
4. Binary Log(二进制日志)
二进制日志是唯一符合题意的选项。它默认记录所有对数据库的 数据变更操作(如 INSERT、UPDATE、DELETE、DDL 等),并以二进制格式存储。
核心作用:支持数据恢复、主从复制和增量备份。
记录逻辑:在事务提交后生成,确保数据变更的持久性和可追溯性。
默认启用:与审计日志不同,二进制日志在 MySQL 中默认开启(需配置 log_bin 参数)。
5. Audit Log(审计日志)
审计日志记录用户操作(如登录、权限变更等),用于安全审计和合规性检查。但它是 MySQL 企业版功能,社区版需额外插件支持,且 默认不启用,因此不符合题意。
答案: 根据题目要求“默认”、"记录数据库对象和数据的变更",正确答案是 D) binary log(二进制日志)
二、 对比及小结
以下再对上面5个日志进行默认启用及用途的对比,结果如下表所示:
另外,关于General Log和Slow Query Log的写入顺序,之前还通过源码调试进行解析,感兴趣的同学可以参考历史文章进行查看

MySQL数据库BUG导致查询不到本该查到的数据
MySQL源码学习系列(一)-- 环境准备及常用命令
MySQL源码学习系列(二)--面试高频问题:general log、slowlog记录顺序
MySQL数据库修改小众参数解决大众问题
MySQL8.0 双密码机制:解决应用程序用户不停机修改密码问题
MySQL8.0.40编译安装
DBA面试题:MySQL缓存池LRU算法做了哪些改进?
慢SQL探秘之为什么我的SQL很慢却没记录在慢查询日志里
MySQL数据恢复







