AI-Agent 高频面试题汇总 - MySQL基础篇

1. MySQL 常见存储引擎有哪些?有什么区别?

常见是 InnoDBMyISAM

  • InnoDB:支持事务、行锁、外键,适合高并发 OLTP(线上业务)
  • MyISAM:不支持事务和行锁,读多写少场景才会考虑AI-Agent 在线系统一般优先 InnoDB。

2. 什么是事务?事务四大特性(ACID)是什么?

事务是“一组操作要么都成功要么都失败”。ACID:

  • A 原子性
  • C 一致性
  • I 隔离性
  • D 持久性

3. MySQL 事务隔离级别有哪些?

四级:

  1. Read Uncommitted
  2. Read Committed
  3. Repeatable Read(MySQL 默认)
  4. Serializable隔离级别越高,并发性能通常越低。

4. 脏读、不可重复读、幻读分别是什么?

  • 脏读:读到别人未提交数据
  • 不可重复读:同一行前后两次读值不同
  • 幻读:同条件两次查询,行数不同(出现“新行”)

5. 如何开启、提交、回滚事务?

START TRANSACTION;
-- SQL...
COMMIT;
-- 或
ROLLBACK;

6. 什么是索引?为什么能加速查询?

索引是高效数据结构(常见 B+Tree),减少全表扫描,降低 IO 次数,从而加速查询。

7. 索引有哪些常见类型?

  • 主键索引(PRIMARY)
  • 唯一索引(UNIQUE)
  • 普通索引(INDEX)
  • 联合索引(多列)
  • 前缀索引(字符串前缀)
  • 全文索引(FULLTEXT,特定场景)

8. 什么时候索引会失效?

常见失效场景:

  • 对索引列做函数/计算
  • 隐式类型转换
  • 联合索引不满足最左前缀
  • like '%xx' 前导模糊
  • or 条件一侧无索引

9. 什么是最左前缀原则?

联合索引 (a,b,c) 能命中 aa,ba,b,c,一般不能直接命中 b,c

10. 如何查看 SQL 是否走索引?

EXPLAIN SELECT * FROM t_user WHERE **********';

重点看 typekeyrowsExtra

11. EXPLAIN 中常见字段怎么看?

  • type:访问类型(const/ref/range/all
  • key:实际使用的索引
  • rows:预估扫描行数(越小越好)
  • Extra:如 Using filesortUsing temporary 需关注

12. 什么是覆盖索引?

查询字段全部可在索引中拿到,不用回表。性能通常更好。(Extra 常见 Using index

13. 什么是回表?

二级索引命中后,再回主键索引取完整行数据。回表多会增加 IO。

14. 如何创建/删除索引?

CREATE INDEX idx_user_email ON t_user(email);
CREATE UNIQUE INDEX uk_order_no ON t_order(order_no);
DROP INDEX idx_user_email ON t_user;

15. 什么是慢查询?如何排查?

执行时间长、扫描行多的 SQL。排查:慢日志 + EXPLAIN + 索引优化 + SQL 改写。

16. 如何开启慢查询日志?

SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';

(生产通常在配置文件里持久化开启)

17. count(*)、count(1)、count(列) 区别?

  • count(*):统计行数(推荐)
  • count(1):本质接近
  • count(列):不统计该列为 NULL 的行

18. where 和 having 的区别?

  • where:分组前过滤
  • having:分组后过滤(常配合聚合函数)

19. inner join / left join 区别?

  • inner join:取两边匹配行
  • left join:保留左表全部,不匹配右表补 NULL

20. join 过慢怎么优化?

常见手段:

  • 给连接字段加索引
  • 小表驱动大表
  • 只查必要列(避免 select *
  • 拆分复杂 SQL,减少临时表/排序

21. 什么是主从复制?AI-Agent 为什么常用?

主库写,从库读,提升读能力与可用性。AI-Agent 场景(会话查询、日志检索)读多写少时非常常见。

22. 什么是读写分离?

写请求走主库,读请求走从库,缓解主库压力。

23. 主从延迟会导致什么问题?

读到旧数据(写后立刻读不一致)。常见处理:关键读回主库、延迟容忍、重试机制。

24. 什么是分库分表?什么时候做?

单库单表数据量过大、QPS过高时做水平拆分。代价是事务、跨库 join、运维复杂度上升。

25. 如何设计 AI-Agent 的会话表?

核心字段建议:

  • session_id
  • user_id
  • role(user/assistant/tool)
  • content
  • token_count
  • created_at并对 session_id + created_at 建联合索引,优化历史消息读取。

26. 如何避免重复写入(幂等)?

用唯一键约束幂等ID(如 request_id),配合 UPSERT。

ALTER TABLE t_msg ADD UNIQUE KEY uk_req (request_id);

INSERT INTO t_msg(request_id, content)
VALUES('req_001','hello')
ON DUPLICATE KEY UPDATE content=VALUES(content);

27. delete、truncate、drop 区别?

  • delete:删数据,可带 where,可回滚(事务中)
  • truncate:清空表,DDL,速度快
  • drop:删表结构+数据

28. varchar 和 char 区别?

  • char:定长,适合长度固定字段
  • varchar:变长,节省空间,业务里更常用

29. datetime 和 timestamp 区别?

  • datetime:范围大,和时区处理相对独立
  • timestamp:存储空间小,受时区影响明显,常用于更新时间戳

30. 什么是外键?线上为什么常不强依赖外键?

外键保证引用完整性,但高并发下会增加约束开销、影响扩展。很多互联网系统在应用层保证一致性。

31. 什么是死锁?如何处理?

多个事务互相等待对方锁资源。处理:

  • 缩短事务
  • 固定加锁顺序
  • 命中索引减少锁范围
  • 捕获死锁错误后重试

32. 行锁和表锁区别?

  • 行锁:锁粒度小,并发高(InnoDB)
  • 表锁:锁整表,并发低但开销小(某些场景)

33. 什么情况下会出现间隙锁?

InnoDB 在 RR 隔离级别下,为防幻读,对索引区间加锁(范围查询常见)。

34. 如何查看当前连接与执行线程?

SHOW PROCESSLIST;

35. 如何查看表结构和建表语句?

DESC t_user;
SHOW CREATE TABLE t_user;

36. 如何新增字段、修改字段、加索引?

ALTER TABLE t_user ADD COLUMN last_login DATETIME;
ALTER TABLE t_user MODIFY COLUMN nickname VARCHAR(64);
ALTER TABLE t_user ADD INDEX idx_last_login(last_login);

37. 如何做分页?深分页为什么慢?

基础分页:

SELECT id,content FROM t_msg ORDER BY id DESC LIMIT 0,20;

深分页慢是因为 offset 越大扫描越多。优化:基于上次最大/最小 id 游标翻页(seek 方法)。

38. 如何避免 SQL 注入?

核心:参数化查询(预编译),不要字符串拼接 SQL。并对输入做长度、格式、白名单校验。

39. AI-Agent 场景下,MySQL 与向量库如何分工?

  • MySQL:结构化数据(用户、会话元数据、任务状态、审计日志)
  • 向量库:语义检索(embedding 相似度召回)二者组合最常见:MySQL 管“业务真相”,向量库管“语义召回”。

40. 面试中如何讲一个 MySQL 优化案例?

现象(慢) → 定位(慢日志+EXPLAIN) → 根因(索引缺失/SQL不优) → 修复(加索引+改SQL) → 结果(耗时下降、QPS提升)。这个表达方式最容易拿分。

AI-Agent面试实战专栏 文章被收录于专栏

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

全部评论

相关推荐

Edgestr:没项目地址就干脆把那一栏删了呗
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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