记一次 MySQL 慢查询排查:从 8 秒到 80 毫秒
上周排了个慢查询,记录一下全过程。
现象:列表页平均响应 8 秒,高峰期拖垮整个首页。
排查:EXPLAIN 一看,type=ALL,扫描 200 万行。明明建了索引,为什么不走?
原因:联合索引 (board_id, created_at),但查询条件里对 board_id 用了函数包裹,索引直接失效。
解决:把函数计算挪到应用层,查询改为等值匹配,再补上 ORDER BY 与索引顺序一致,耗时降到 80ms。
教训:索引列上做任何计算都是索引杀手。
还没有人回复,快来抢沙发~