示例
示例
-- 对比计划:关注 rows 估算与实际差距
EXPLAIN ANALYZE SELECT ... ;
-- MySQL:更新统计并复看
ANALYZE TABLE orders;
-- PostgreSQL:同一语句不同参数的计划可能不同
EXPLAIN (ANALYZE) SELECT * FROM orders WHERE user_id = 100; -- 选择性高的参数
EXPLAIN (ANALYZE) SELECT * FROM orders WHERE user_id = 1; -- 选择性低的参数
-- 必要时评估 prepared 语句的计划复用策略(PG 的 plan_cache_mode)| 常见原因 | 统计过期、数据分布变化、新增索引改变代价、参数差异导致计划分化 |
|---|---|
| 临时手段 | 提示与强制索引用于验证方向与应急 |
| 根治 | 更新统计、调整索引结构、必要时固定语句形态 |