MySQL学习之执行计划

目录

执行计划

# 执行计划:一个预估SQL语句执行的时间的操作
# 关键字:explain

# 虽然有MySQL优化的措施避免一些不能命中索引的方式,
# 但是最后还是要看SQL语句的运行时间,时间短就是好的。

# 执行计划是以最坏的打算进行预估SQL语句执行的时间,所以只能作为参考。
# 以后拿到一个SQL语句的时候,先进行执行计划。

# explain select * from userinfo;
id select_type table partitions type possible_keys key key_len ref rows filtered Extra

id: 查询顺序的标识
select_type: 查询的类型
            SIMPLE: 简单查询
            PRIMARY: 最外层查询
            SUBQUERY:映射的子查询
            DRIVED: 子查询
            UNION:联合
            UNION RESULT:使用联合的结果
table: 访问的表
partitions:
type: 查询的访问方式
        all < index < range < index_merge < ref_or_null < ref < eq_ref < const/system
        all: 从前往后,全表扫描
            select * from userinfo where uname = 'alex';
            特别的:select * from userinfo where uname = 'alex' limit 1;
            这句特别快,虽然explain后,type也是all,但这句是找第一个后就不会往后继续扫描了
        index: 全索引扫描
        range: 指定索引范围扫描
            PS: between and / in / >= < <= 特别注意!=>
        index_merge: 索引合并
        ref_or_null:
        ref: 使用索引查询一个或多个值
        eq_ref: 连表时条件onprimary key或者unique
        const: 常量,最多一个匹配行
        system: 仅一个匹配行
possible keys: 可能使用的索引
key: 真实使用的索引
key_len: 索引使用的长度
ref:
rows: 找到所需的行所读取的行数
filtered:
Extra:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值