数据库出现慢查询怎么定位?

面试题简述

数据库出现慢查询,你会怎么排查?

面试官想听的

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大厂八股文面试,拆解面试官到底想听啥

全部评论
也有可能业务代码导致的查询慢
点赞 回复 分享
发布于 昨天 23:12 湖南
一般SQL慢查询是没有用olap引擎,olap查询都是毫秒级别
点赞 回复 分享
发布于 昨天 22:29 北京

相关推荐

评论
点赞
1
分享

创作者周榜

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