系统出现严重的慢查询,P99延迟从300ms飙升到12s,日志显示大量慢SQL集中在同一张订单表(约18亿行)。给出诊断和优化的完整思路,包括但不限于:慢SQL定位、执行计划分析、索引选择、表结构优化、分库分表策略、读写分离、缓存设计、SQL改写等,要求给出优先级排序和预期收益预估。

分类: technical

难度: hard

标签:

答题技巧

["优先使用监控系统(慢查询日志、PMM、tracing)定位Top 5慢SQL","explain analyze 的关键指标解读(rows examined、key usage、filesort、tmp table等)","覆盖索引、索引下推、JOIN顺序、子查询转JOIN等优化技巧优先级","何时引入分库分表 vs 何时先做冷热分离/历史表归档","不同业务场景下合适的拆分维度(用户维度 vs 时间维度 vs 订单状态维度)","多级缓存(本地+分布式+热点预加载)在这种场景的价值","SQL改写能带来的数量级提升案例"]

参考答案

优先级:1. 开启慢查询日志+tracing → 定位Top 10慢SQL(预期收益:立即发现问题SQL)→ 2. 加/优化覆盖索引+索引下推(预期:P99降至2-4s)→ 3. 热点数据旁路缓存(本地+Redis热点预热,预期再降50-70%)→ 4. 高频查询做物化视图/汇总表(预期再降30-60%)→ 5. 冷热分离+历史订单归档(长期降低主表体积)→ 6. 最后考虑按用户+时间复合分片(减少单表体积)。

技术面试
困难

系统出现严重的慢查询,P99延迟从300ms飙升到12s,日志显示大量慢SQL集中在同一张订单表(约18亿行)。给出诊断和优化的完整思路,包括但不限于:慢SQL定位、执行计划分析、索引选择、表结构优化、分库分表策略、读写分离、缓存设计、SQL改写等,要求给出优先级排序和预期收益预估。

16 次浏览

回答要点

["优先使用监控系统(慢查询日志、PMM、tracing)定位Top 5慢SQL","explain analyze 的关键指标解读(rows examined、key usage、filesort、tmp table等)","覆盖索引、索引下推、JOIN顺序、子查询转JOIN等优化技巧优先级","何时引入分库分表 vs 何时先做冷热分离/历史表归档","不同业务场景下合适的拆分维度(用户维度 vs 时间维度 vs 订单状态维度)","多级缓存(本地+分布式+热点预加载)在这种场景的价值","SQL改写能带来的数量级提升案例"]

参考答案

优先级:1. 开启慢查询日志+tracing → 定位Top 10慢SQL(预期收益:立即发现问题SQL)→ 2. 加/优化覆盖索引+索引下推(预期:P99降至2-4s)→ 3. 热点数据旁路缓存(本地+Redis热点预热,预期再降50-70%)→ 4. 高频查询做物化视图/汇总表(预期再降30-60%)→ 5. 冷热分离+历史订单归档(长期降低主表体积)→ 6. 最后考虑按用户+时间复合分片(减少单表体积)。

开始模拟面试练习

通过 AI 模拟面试,提升你的面试技巧和自信心