从 200ms 到 2ms:一次 SQL 慢查询的极致优化实录

生产环境接口超时,PM 催命,DBA 甩锅,最终发现是 OR 条件埋的雷。
事故现场
-- 原始查询,200ms+
SELECT * FROM orders
WHERE user_id = 10086
OR phone = '13800138000'
ORDER BY created_at DESC
LIMIT 20;
执行计划
type: ALL -- 全表扫描
rows: 1,247,890 -- 扫描 120 万行
Extra: Using where; Using filesort

posted @ 2026-03-12 22:06  去年冬天见了一面  阅读(0)  评论(0)    收藏  举报