第 13 篇 高频SQL优化:深分页、count(*)、filesort 与 join 算法 开篇钩子优化 SQL 不需要玄学——每一种"慢"背后都有明确的物理原因。深分页慢是因为扫了大量无用数据;count(*) 慢是因为没走覆盖索引;filesort 慢是因为内存不够做归并;BNL join 慢是因为在内存里反复循环匹配。本篇用实验复现这四类高频场景,每一类给出可以直接用的解决方案。数据前提:本篇 1~4 节的示例都以"表里有百万行"为背景来讲原理,直接在共用的 6 行t_user/ 5 行t_order上敲,EXPLAIN出来的都是ALL,看不出任何差别。要真正跑出对比效果,先建好第 5 节的t_perf_test并灌满 100 万行(或按第 00 篇 4.2 节CALL fill_user(1000000)),再回头看这几节。1. 深分页:LIMIT 100000, 10为什么慢原理分析-- 这条 SQL 扫了多少行?SELECT*