Mysql explain详解

112 阅读1分钟

输出字段详解

id:

  • 查询中每个选择部分的标识符。id 越大, 优先级越高, 先执行。

**select_type: **

  • 查询的类型, 例如:

    • SIMPLE: 简单查询, 不包含子查询或 UNION。
    • PRIMARY: 最外层查询。
    • SUBQUERY: 子查询。
    • DERIVED: 派生表(如子查询中的 FROM 子句)。
  • table:

    • 查询到表的名称
  • partitions:

    • 显示被访问的分区(如果有)。
  • type:

    • 连接类型, 显示查询中表的访问方式。性能从好到差依次为:
      • system: 表只有一行(等同于系统表)。
      • const: 表最多有一个匹配行。
      • eq_ref: 对于每个来自前一个表的行组合, 从表中读取一行。
      • ref: 对于每个来自前一个表的行组合, 可能从表中读取多行。
      • range: 使用索引选择行。
      • index: 全索引扫描。
      • ALL: 全表扫描。
  • possible_keys:

    • 查询中可能使用的索引。
  • key:

    • 实际使用的索引。如果为 NULL, 表示没有使用索引。
  • key_len:

    • 使用的索引的长度。长度越短, 性能越好。
  • rows:

    • 估计需要读取的行数。