执行计划【Mysql】

来自智得网
跳转至: 导航、​ 搜索

简介

MySQL的执行计划是数据库管理系统(DBMS)根据SQL查询生成的一种优化策略,用于高效地检索数据。当你执行一个SQL查询时,MySQL会先分析这个查询,然后根据表结构、索引和统计信息等因素生成一个执行计划。执行计划会为查询提供访问数据的最优方式。了解执行计划可以帮助我们分析和优化查询性能。

MySQL的执行计划包括以下信息:

  1. id:查询的标识符,用于区分查询中的不同部分。
  2. select_type:查询类型,如SIMPLE(简单查询)、PRIMARY(主查询)、SUBQUERY(子查询)等。
  3. table:查询涉及的表名。
  4. partitions:查询涉及的分区。
  5. type:表示访问数据的方式,如全表扫描(ALL)、索引扫描(index)、范围扫描(range)等。这个值越好,性能通常越高。
  6. possible_keys:可能使用的索引。

原理

字段 含义
id
select_type 查询类型
  • SIMPLE
  • PRIMARY
  • UNION
  • DEPENDENT UNION
  • UNION RESULT
  • SUBQUERY
  • DEPENDENT SUBQUERY
  • DERIVED
  • MATERIALIZED
  • UNCACHEABLE SUBQUERY
  • UNCACHEABLE UNION
table
type 表关联的类型
  • system
  • const
  • eq_ref
  • ref
  • fulltext
  • ref_or_null
  • index_merge
  • unique_subquery
  • index_subquery
  • range
  • index
  • ALL
partitions
possible_keys
key
key_length
ref
rows
extra 扩展字段
  • Using index: 使用覆盖索引;
  • Using where: 使用where 条件过滤数据;
  • Using temporary:查询结果使用临时表来存储;
  • Using filesort: 排序过程中使用了外存排序;
  • Using join buffer:关联查询时表的连接条件没有用到索引;