
SQLite 查询优化全流程实测索引加速 92 倍、覆盖索引 4.5 倍与一个索引无益的反例「加个索引就好了」是数据库优化的口头禅但索引不是万能的。本文在 50 万行订单 1 万客户的数据集上用 EXPLAIN QUERY PLAN 逐项对照哪些场景索引快 900 倍哪个场景索引几乎无益——全部耗时真实计时。一、优化实测矩阵场景优化前优化后加速WHERE cust_id4222.21 ms0.24 ms92×ORDER BY LIMIT 1072.71 ms0.08 ms909×status 25% 行查询300 ms295 ms1×反例同场景覆盖索引取 id300 ms66.47 ms4.5×二、三条结论1. 点查询建索引SCAN 变 SEARCH INDEX92 倍起步 2. 排序建索引EXPLAIN 里 TEMP B-TREE 消失LIMIT 变索引序直读909 倍 3. 反例status 命中 25% 行低选择性取整行仍需逐条回表 → 索引无益 但只取 id 时建覆盖索引COVERING INDEX4.5 倍覆盖索引是回表场景的解药索引本身包含查询所需全部列时不用回表。整套实验零第三方依赖Python 标准库 sqlite3python main.py造数据跑实验一条龙——EXPLAIN 不会骗人数字也不会。 本文对应的完整优化套件50 万行数据集实测脚本已整理上传点击查看资源包