执行计划是 SQL 查询优化的核心工具,能帮助开发者理解数据库如何执行查询语句,从而发现性能瓶颈并优化查询。

🔍 什么是执行计划?

执行计划(Explain Plan)是数据库为执行 SQL 语句生成的内部操作步骤,包含以下信息:

  • 访问路径(如全表扫描、索引扫描)
  • 连接方式(如嵌套循环、哈希连接)
  • 排序操作
  • 数据读取与写入的代价

📌 关键作用

  • 识别低效查询
  • 验证索引使用情况
  • 预测查询性能

📊 如何查看执行计划?

不同数据库的查看方式略有差异,以下是常见方法:

MySQL

EXPLAIN SELECT * FROM table_name WHERE condition;

👉 点击了解更多 MySQL 执行计划详解

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

使用 EXPLAINSHOWPLAN_TEXT

SET SHOWPLAN_TEXT ON;
SELECT * FROM table_name WHERE condition;

⚙️ 执行计划优化技巧

  1. 分析慢查询:通过执行计划定位高代价操作(如全表扫描)
  2. 合理使用索引:确保 WHERE/JOIN 条件列有索引支持
  3. 避免选择率过低的索引:索引选择率(Selectivity)低时可能适得其反
  4. 优化连接顺序:调整表连接顺序以减少数据处理量

💡 小贴士:执行计划中的 rows 列表示预估返回行数,type 列显示访问类型(如 indexrangeALL)。

📈 执行 plan 的可视化示例

SQL_Execution_Plan
上图展示了 SQL 查询的执行流程,包含扫描表、过滤数据、排序等步骤。

🌐 扩展阅读

📌 注意:执行计划是数据库的内部策略,实际执行可能因数据分布或系统负载不同而变化,建议结合实际测试调整优化方案。