MySQL EXPLAIN ANALYZE:复合索引是否真的减少了扫描行数
对比预计与实际行数,用同一查询证明从全表扫描切换到复合索引范围扫描,同时评估索引写入成本和生产 DDL 风险。
- 适用环境
- MySQL 8.4.10 / InnoDB / Docker 24.0.7 / 100,000 deterministic rows
- 验证耗时
- 约 15 分钟
- 风险等级
- EXPLAIN ANALYZE 会实际执行查询;生产建索引前评估 DDL 锁、空间、写入、redo/binlog 和复制延迟
复现证据摘要
结果保持 51;建索引前全表实际扫描 100000 行,添加 tenant_id/created_at 复合索引后变为 covering range scan,实际读取 51 行。
查看完整诊断步骤 →