mysql使用进阶----查询计划

文章详细解释了SQL查询计划中type、possible_keys、key和ref字段的含义,强调全索引扫描、全表扫描、索引范围扫描和常量查询的区别,以及可能应用的索引和实际使用的索引在查询优化中的作用。
摘要由CSDN通过智能技术生成

查询计划

比如下面语句:

select * from sa_group_member_t WHERE MEMBER_ROLE_CODE = 'XXXX';

在语句之前加explain ,可看到查询计划为:

±—±------------±------------------±-----------±-----±---------------±---------------±--------±------±-----±---------±------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
±—±------------±------------------±-----------±-----±---------------±---------------±--------±------±-----±---------±------+
| 1 | SIMPLE | sa_group_member_t | NULL | ref | IDX_GROUP_ROLE | IDX_GROUP_ROLE | 258 | const | 1156 | 100.00 | NULL |
±—±------------±------------------±-----------±-----±---------------±---------------±--------±------±-----±---------±------+

解释一下type、possible_keys 和key等几个字段的含义。

type
index:全索引扫描。
ALL:全表扫描,应避免。
ref:查询使用了非unique key或primary key的索引,或者是组合索引的一部分(比如最左前缀)。该type类型是比较常见的。
range:索引范围扫描,使用索引返回一个范围中的行,比如使用>或IN
const :读常量,最多只会有一条记录匹配。一般出现在primary key或unique key查询里。该type类型是比较常见的。

possible_keys
可能应用在查询中的索引。

key
实际使用的索引。如果为NULL,则表示未使用索引。

ref
显示索引的哪一列被使用了

rows
返回最终结果前的候选行数,最理想的数字是1,意味着不需要再过滤了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值