目录
MySQL索引相关
/  

MySQL索引相关

select_type: 这个字段描述了查询中每个操作的类型. 常见的操作类型包括:

  1. simple: 简单的不包含子查询或者union的查询
  2. primary: 查询中的最外层查询
  3. subquery: 在select或where列表中包含的子查询
  4. derived: 在from列表中包含的子查询
    ...

type:

  1. ALL 全表扫描
  2. index 索引扫描
  3. rane 范围扫描
  4. system 表中只有一行
  5. const: 使用主键或唯一索引查找时,只有一行匹配.
  6. eq_ref: 使用唯一索引查找时只有一行匹配.
  7. ref: 非唯一索引查找.

possible_keys: 表示可能被查询优化器选择使用的索引

key: 表示查询优化器选择使用的索引

filtered: 表示在表中扫描的行的百分比
表示查询条件过滤后返回的行数占表总行数的比例.

key_len: key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在使用联合索引的时候,判断该索引有多少部分被使用到非常重要。
key_len的长度计算公式很重要(key_len越小,说明索引效果越好)

Extra: 提供有关执行计划的其他信息,如使用了临时表\文件排序等.

  1. using index: 表示查询使用了覆盖索引, 即查询结果可以直接从索引中获取
  2. using where: 表示查询使用了 where 子句来过滤数据
  3. using temporary: 表示查询执行中使用了临时表来保存中间结果.
  4. using filesort: 表示查询中使用了文件排序操作
  5. using join buffer(Block Nested Loop): 表示查询执行中使用了连接缓冲区来处理连接操作.
  6. using index condition: 表示查询执行中使用了索引条件推送优化. (索引下推)
  7. using where; using index: 表示查询使用了where子句进行过滤,并使用了覆盖索引.
  8. impossible where: 表示查询的where子句总是返回false,因此没有匹配的行
  9. select tables optimized away: 表示查询优化器优化掉了不必要的表.
  10. no tables used: 表示查询中没有涉及任何表.

标题:MySQL索引相关
作者:gitsilence
地址:https://blog.lacknb.cn/articles/2024/01/21/1705849651118.html