AI-Agent 高频面试题汇总 - MySQL进阶篇
1. InnoDB 的核心组成有哪些?
核心包括:Buffer Pool、Redo Log、Undo Log、Change Buffer、Doublewrite Buffer、自适应哈希索引(AHI)。面试重点:知道它们分别解决“性能”和“可靠性”问题。
2. Buffer Pool 是什么?为什么重要?
Buffer Pool 是 InnoDB 的内存缓存区,缓存数据页和索引页,减少磁盘 IO。命中率越高,查询越快。
3. Redo Log 和 Undo Log 区别是什么?
- Redo Log:保证事务持久性(崩溃恢复)
- Undo Log:保证事务原子性和 MVCC(回滚、快照读)
4. 什么是 WAL(Write-Ahead Logging)?
先写日志再写数据页,崩溃后可通过日志恢复,提升可靠性与吞吐。
5. 什么是 Doublewrite?解决什么问题?
防止页写入“半页损坏”(partial page write)。先写 doublewrite 区,再写表空间页,崩溃时可恢复。
6. MySQL 中的一条 UPDATE 大致经历什么流程?
连接器 → 解析器 → 优化器 → 执行器 → 引擎层更新 Buffer Pool → 写 Undo/Redo → 事务提交(刷日志策略)。
7. 什么是 MVCC?解决了什么问题?
多版本并发控制。让“读不阻塞写、写不阻塞读”(快照读场景),提升并发性能。
8. Read View 是什么?
事务进行快照读时生成的可见性视图,用于判断某版本数据是否可见。
9. 当前读和快照读有什么区别?
- 当前读:读最新版本,并可能加锁(
select ... for update) - 快照读:读历史可见版本(普通
select)
10. RR 隔离级别下,InnoDB 如何避免幻读?
通过 Next-Key Lock(记录锁+间隙锁) 在当前读场景抑制幻读。
11. 什么是 Next-Key Lock?
锁定“记录 + 前后间隙”的组合锁,用于范围条件下防止并发插入造成幻读。
12. 什么是意向锁?有什么作用?
表级锁,表示“事务将对某些行加锁”。作用是协调表锁与行锁,提升锁冲突判断效率。
13. 什么情况下容易发生死锁?
高并发下,事务以不同顺序锁定多行/多表资源时容易死锁。典型:事务A先锁1后锁2,事务B先锁2后锁1。
14. 如何查看最近一次死锁信息?
SHOW ENGINE INNODB STATUS\G
15. 死锁和锁等待超时的区别?
- 死锁:循环等待,InnoDB会主动回滚一个事务
- 锁等待超时:未形成环,但等待超过阈值后报错
16. 如何减少死锁概率?
固定访问顺序、缩短事务、走索引减少锁范围、避免大事务。
17. explain 的 type 至少要达到什么级别?
通常至少要避免 ALL(全表扫描),尽量做到 range/ref/c
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.