MySQL 执行计划练习:怎样验证一个索引选择
围绕一条具体 SQL,记录数据分布、执行计划、耗时和写入成本。
索引优化练习应从具体查询开始。先固定业务语义和测试数据,再比较候选索引,避免通过改变结果范围制造“更快”的结论。以下是练习方法,不是针对任意生产库的直接操作指令。
准备可重复的测试
在隔离测试库中建立订单表,包含用户、创建时间、状态与订单编号。构造不同用户拥有不同订单数量的数据,记录版本、表定义和数据生成方式。
写清楚查询目标
例如读取指定用户最近一个月的订单,按创建时间排序并分页。先检查结果是否正确,再讨论索引是否有用。记录筛选条件、排序条件与返回列。
比较候选方案
分别观察没有目标索引、不同列顺序的联合索引,以及查询返回列变化后的计划。记录实际选择的访问路径、估计行数和延迟。EXPLAIN ANALYZE 会执行查询,使用前确认版本支持与运行影响。
不只看读取
索引需要存储空间,也可能增加写入维护成本。在相同环境比较插入与更新,再说明为什么该业务值得承担这些成本。不要把一次热缓存测量与另一次冷缓存测量直接比较。
面试时怎样总结
用“查询目标—证据—改动—结果—限制”的顺序表达。如果没有可靠数据,说明计划观察到的现象与后续实验,不编造提升比例。
参考 MySQL 8.4 索引优化手册。继续阅读 MySQL 专题 连接事务和并发问题。

评论 0 友善交流,让每个问题都有回响
还没有评论,分享你的看法吧。