执行计划是 SQL 查询优化的核心工具,能帮助开发者理解数据库如何执行查询语句,从而发现性能瓶颈并优化查询。
🔍 什么是执行计划?
执行计划(Explain Plan)是数据库为执行 SQL 语句生成的内部操作步骤,包含以下信息:
- 访问路径(如全表扫描、索引扫描)
- 连接方式(如嵌套循环、哈希连接)
- 排序操作
- 数据读取与写入的代价
📌 关键作用:
- 识别低效查询
- 验证索引使用情况
- 预测查询性能
📊 如何查看执行计划?
不同数据库的查看方式略有差异,以下是常见方法:
MySQL
EXPLAIN SELECT * FROM table_name WHERE condition;
PostgreSQL
使用 EXPLAIN ANALYZE
查看实际执行情况:
EXPLAIN ANALYZE SELECT * FROM table_name WHERE condition;
Oracle
通过 EXPLAIN PLAN FOR
语句生成计划:
EXPLAIN PLAN FOR SELECT * FROM table_name WHERE condition;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SQL Server
使用 EXPLAIN
或 SHOWPLAN_TEXT
:
SET SHOWPLAN_TEXT ON;
SELECT * FROM table_name WHERE condition;
⚙️ 执行计划优化技巧
- 分析慢查询:通过执行计划定位高代价操作(如全表扫描)
- 合理使用索引:确保 WHERE/JOIN 条件列有索引支持
- 避免选择率过低的索引:索引选择率(Selectivity)低时可能适得其反
- 优化连接顺序:调整表连接顺序以减少数据处理量
💡 小贴士:执行计划中的 rows
列表示预估返回行数,type
列显示访问类型(如 index
、range
、ALL
)。
📈 执行 plan 的可视化示例
🌐 扩展阅读
📌 注意:执行计划是数据库的内部策略,实际执行可能因数据分布或系统负载不同而变化,建议结合实际测试调整优化方案。