sql优化学习笔记之EXPLAIN详解

本文是关于MySQL中EXPLAIN命令的学习笔记,主要解析了EXPLAIN的type、key、key_len、rows和extra列,阐述了不同类型的查询效率和优化方法。重点介绍了全表扫描(all)、索引扫描(index)、范围扫描(range)、非唯一索引扫描(ref)、唯一索引扫描(eq_ref)和常量扫描(const)等类型,并提到了key_len对于索引使用长度的指示,以及rows预估的扫描行数。最后,讨论了extra列中可能出现的Using filesort和Using temporary对查询性能的影响。
摘要由CSDN通过智能技术生成

创建一张表

善用EXPLAIN查看执行计划

这里我们需要关注的数据有:

type列,key列,key_len列,rows列,extra列

1、type列

这里的type官方全称是“join type”,意思为连接类型,它更确切的说是一种数据库引擎查找表的一种方式,在《高性能mysql》一书中作者更是觉得称呼它为访问类型更贴切一些。mysql5.7中type的类型达到了14种之多,这里只记录和理解最重要且经常遇见的六种类型,它们分别是all,index,range,ref,eq_ref,const。从左到右,它们的效率依次是增强的。撇开sql的具体应用环境以及其他因素,你应当尽量优化你的sql语句,使它的type尽量靠右,但实际运用中还是要综合考虑各个方面的。一个好的SQL语句至少要达到range级别。杜绝出现all级别。

all:全表扫描,最原生的状态,有很

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值