执行计划简述

84 阅读1分钟

执行计划详解

执行计划是通过EXPLAIN语句获得的,用于分析和优化查询性能。

  • id: 在一个大查询语句中,每个SELECT关键字对应一个唯一的id。
  • select_type: SELECT关键字对应的查询类型。
  • table: 表名。
  • partitions: 匹配的分区信息。
  • type: 针对单表的访问方法,从最好到最差依次是system, const, eq_ref, ref, range, index, ALL
  • possible_keys: 可能用到的索引。
  • key: 实际使用的索引。
  • key_len: 实际使用到的索引长度。
  • ref: 当使用索引列等值查询时,与索引列进行等值匹配的对象信息。
  • rows: 预估需要读取的记录条数。
  • filtered: 某个表经过搜索条件过滤后剩余记录条数的百分比。
  • Extra: 一些额外的信息。

查询优化器

  1. 查询语句解析与创建解析树

    • 查询缓存检查(select语句)。
    • 解析查询,创建解析树,进行语法和语义解析。
  2. 查询优化

    • 优化SQL语句,重写查询,决定表的读取顺序,选择需要的索引等。
    • 询问存储引擎,获取开销信息,查询优化等。
  3. 执行查询

    • 执行最终的查询计划,获取结果。