真实事故复盘:某列表页平时 20ms,某天突然 5s,整站卡死。
根因:
1. 新加的筛选条件没走索引,WHERE status=1 AND created_at>? 里 created_at 没建索引,全表扫。
2. 该接口被首页高频调用,慢查询把数据库连接池占满,别的请求全排队。
3. 没有超时兜底,雪崩。
排查步骤:
- EXPLAIN 看是否 ALL(全表扫);
- 加联合索引 (status, created_at);
- 给查询加 timeout,连接池设上限;
- 热点数据上 Redis 缓存。
教训:索引不是建了就完,要按实际查询条件建联合索引,并定期看慢查询日志。
楼主 · 2026-09-28 15:11 · 浏览 109
· 编辑于 2026-09-28 15:11

