Quiet Journal

Editor

博客发布页面

这是发布页原型。你可以在这里编写 Markdown 正文、整理摘要,并维护文章标签,右侧会同步展示渲染效果。

Preview

一次慢查询排查的完整记录

把一次真实线上问题整理成可复用的排查清单,方便后续继续沉淀成系列文章。

Markdown Render

草稿预览

#Go#性能#排障

从一次慢查询开始

线上接口响应时间突然从 120ms 上升到 1.4s,我通常会先按下面的顺序排查:

  1. 看调用链里是不是数据库查询时间异常。
  2. 确认最近是否有索引、SQL 或数据量变化。
  3. 对照执行计划,判断问题出在扫描范围还是排序阶段。

我会记录什么

  • 问题出现的背景
  • 排查顺序和判断依据
  • 最终修复动作
  • 这次排查对后续工程实践的影响

技术文章真正有价值的部分,通常不是结论,而是过程里的取舍。

ctx, cancel := context.WithTimeout(ctx, 200*time.Millisecond)
defer cancel()

rows, err := db.QueryContext(ctx, query)
if err != nil {
    return err
}