数据库出现慢查询怎么定位?
面试题简述
数据库出现慢查询,你会怎么排查?
面试官想听的
1、是否知道慢查询日志、执行计划、索引失效等定位思路;
2、是否能系统化地给出步骤而不是随口乱试;
3、能否举例说明曾经真实优化的过程。
面试示例回答
这个问题我在 XX 公司实习项目里曾经遇到过。
问题表现: 当时一个接口从几十毫秒变成了 3 秒,定位后发现是 SQL 慢查询。
详情请参考:http://xhslink.com/o/2pLriF66UjT
由浅入深分析
1、慢查询常见原因:
(1)索引失效(函数、类型、模糊匹配);
(2)数据量过大,分页深;
(3)锁等待或死锁;
(4)联表太多;
(5)查询未命中缓存。
2、优化手段:
(1)建立合适索引;
(2)读写分离;
(3)SQL 重写;
(4)增加缓存;
(5)限制分页深度。
面试加分点
1、举例实际问题,展示实践能力: 如上述的接口慢查询的排查。
2、展示系统思维: 慢查询不一定是数据库问题,也可能是业务层滥用查询或索引设计不合理导致的。
#实习##春招##后端开发##算法##秋招#2025八股文复盘 文章被收录于专栏
带你复盘2025大厂八股文面试,拆解面试官到底想听啥
