MySQL慢查询优化流程
面试题简述
如果你发现一个 SQL 执行很慢,你会怎么排查和优化?说说你的思路。
面试官想听的
1、是否有系统的排查思路;
2、是否能体现先定位 再分析 后优化的思维
3、是否能结合具体例子说明,而非泛泛而谈。
面试示例回答
我一般会按照以下流程排查慢查询问题:
1、第一步:确认问题范围
看是全局慢还是单条 SQL 慢。可以通过慢查询日志或性能监控定位。
详情请参考:http://xhslink.com/o/3qMWUtzAc76
由浅入深分析
1、工具层面:slowlog、EXPLAIN、SHOW PROFILE、performance_schema。
2、索引命中分析:最左匹配、范围查询、覆盖索引。
3、逻辑优化:减少数据扫描量、避免隐式转换。
4、架构优化:读写分离、分库分表、缓存层。
面试加分点
1、能提到索引失效的常见原因,比如函数、隐式类型转换、模糊匹配等。
2、能强调SQL优化是定位问题,不是盲目加索引。
3、如果能够结合慢查询日志阈值设置与实际项目中的问题排查实践,会是大大地加分项。
#春招##实习##后端开发##算法##秋招#2025八股文复盘 文章被收录于专栏
带你复盘2025大厂八股文面试,拆解面试官到底想听啥