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面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
Redo Log刷盘策略?
点赞 回复 分享
发布于 03-10 23:38 河北
真的赞
点赞 回复 分享
发布于 03-10 22:18 云南
(⊙﹏⊙) 原来这么多东西 我还以为会个增删改查就可以了
点赞 回复 分享
发布于 03-10 21:49 黑龙江

相关推荐

04-13 22:27
门头沟学院 Java
一、 实习相关二、 MySQL 数据库原理5. 除了 LIKE 这种模糊查询,还有什么情况会导致 MySQL 索引失效?6. MySQL 的索引有哪些类型?7. 要查看一个 SQL 的执行性能应该怎么看?8. MySQL 的表数据量达到什么量级之后性能可能会急剧下降?为什么?9. SQL 里面的 UNION 和 UNION ALL 有什么区别?三、 个人项目与 Redis 核心原理10. 你的项目里面用 Redis 做了什么?11. 为什么用 Redis 做缓存?(为什么 Redis 执行得这么快?)12. 为什么 Redis 单线程能有那么高的并发量?除了主线程,Redis 还有其他子线程吗?13. Redis 单机的 QPS 一般能达到多少?14. 简单介绍一下 Redis 的 IO 多路复用是一个什么样的机制?15. Redis 里面常见的基础数据结构和高级数据结构有哪些?16. 为什么要用 Lua 脚本?17. Redis 里的 TTL 是个什么概念?四、 分布式架构基础18. 分布式的概念是什么?为什么在分布式场景下单机的 JVM 锁解决不了一人一单的问题?19. 微服务架构和分布式架构有什么不一样?20. 单体架构和分布式架构各自有什么优劣?五、 Java 基础与 JVM 原理21. 什么是 Java 的双亲委派机制?22. 为什么要用双亲委派机制?(如果不使用会导致什么样的安全问题?)23. 你了解哪些垃圾回收算法?24. JVM 里面年轻代和老年代一般的垃圾回收机制是怎样的?(分代回收思想)25. 怎么识别哪些对象是需要回收的垃圾?26. 列举几个常见的 GC Roots。六、 并发编程 (JUC)27. 线程池常用的几个核心参数是什么?28. 核心线程数和最大线程数在任务执行机制上有什么区别?(请描述任务提交到线程池后的流转过程)七、 线上排查与网络协议29. 如果某天发现线上的服务突然卡死了,大概有什么样的分析和排查方式?30. 如果让你人为制造一个 OOM(内存溢出),你要怎么去写代码?31. Java 里面的 Error 和 Exception 有什么区别?32. 如果有用户反馈网站很慢,大概的一个排查和分析路径是怎样的?33. 从在浏览器中输入 URL 打开网页到返回结果,中间经历了哪些步骤?八、 算法手写题34. 两个有序数组的中位数。
查看30道真题和解析
点赞 评论 收藏
分享
前30min自我介绍+项目经历。ps:项目经历感觉没问很深的细节,也没拷打,就看我简历的技术栈来问的(看你这边写熟练mysql,那巴拉巴拉,看你熟练http,tcp,那巴拉巴拉)。agent项目细节一个没问。项目部分问题:1.你这些是实习项目吗?(我说找的然后自己做优化)2.你这个里面为什么用Lua脚本?3.redis那个服务端,怎么保证这个原子性的?4.redis的实现架构上,比如说他的线程模型,进程模型,以及他的并发角度,来解释一下他的原子性。5.redis的持久化策略?为什么两个都用?6.我看你用了一个令牌桶+滑动窗口双算法限流,这个地方能简单描述一下调研了哪些限流方案?,或者你了解哪些限流的方案,以及他们的优缺点,以及在你这个场景最终为什么选择了这个方式?7.你怎么测试方案的性能,讲一下你当时部署的架构和测试的方法。8.你是本地部署还是?那还用redis做限流吗?有没有更好的办法呀?9.你部署的是什么模式呀,比如多个进程还是多个线程?或者单个进程,还是说协程怎么样的。10.你项目中遇到的最大困难是什么,怎么解决的。7-9答的不是很好,一直在想架构要怎么回答。八股文:1.mysql索引结构是什么?(前面架构给我问懵了,这一块没想到,然后就一直掰扯mysql的类型和优化)2.OSI七层模型,简单。场景题:客户端和服务端tcp连接后,长时间没有传数据,服务端突然宕机了,此时客户端和服务端还是连接的吗?(没懂装懂解释了一下三次握手和四次握手)编程题:单链表倒数第k个节点,只运行一次遍历。(秒了)反问环节:1.问个人表现怎么样,说我的项目理解不够深2.扯了一下ai coding ,然后我也讲了一下我使用aicoding的经验。感觉很慌,面前最担心的是编程题,没想到面后最担心的却是回答问题。问了hr小姐姐说两天内收到结果,唉更多干货资料:*****************************************
查看14道真题和解析
点赞 评论 收藏
分享
评论
8
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务