MySQL中的执行计划explain详解


本文摘自PHP中文网,作者藏色散人,侵删。

一、用法及定义:

explain为sql的执行计划、在sql前面加上explain关键字即可

如:explain select * from tbl_emp;

e0abe4281256b0e5bb548448a5fccef.png

名词解释:

id:【操作表的顺序】

1.id相同,表的执行顺序从上往下依次执行

2.id不同,id越大的越先执行

3.id相同和不同的一起,越大的先执行,然后再按顺序从上往下依次执行

select_type:查询类型【区分简单查询,子查询,联合查询】

一般有:SIMPLE[最简答的sql查询],PRIMARY[查询中若包含任何复杂的子查询,最外层查询则被标记],

SUBQUERY[在select或where列表中包含子查询]

UNION

.............

type:访问类型【最好到最差】

system > const > eq_ref > ref > range > index> ALL

   

419c550cda78d6cfb26b68418e2f1bc.png

一般达到range级别就好,最好达到ref

possible:显示可能应用到这张表的索引,一个或者多个;查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用。

简单说:MySQL推测,理论上可能用到的索引,但不一定被查询实际使用

key:查询实际用到的索引,如果为NULL,要么没建要么没用到,或者索引失效

覆盖索引:select后面查询的字段和所建复合索引的个数和顺序一模一样

如果理论上没有,而key中出现了,则是使用了覆盖索引

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

rows:越小越好

Extra:不要出现Using filesort[文件内排序],using index(索引扫描,出现好一点)

二、作用:

  481ed5c31c79f406d3d90ba735c35df.png

实例:

afe423b118978a4906eb7971a97274e.png

推荐mysql视频教程,地址:https://www.php.cn/course/list/51.html

以上就是MySQL中的执行计划explain详解的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql中关于key与primary key以及unique key与index的区别详解

详解mysql中explain解释命令及用法讲解

详解mysql基本操作语句命令

mysql存储过程使用技巧有哪些

mysql初学者可以告别分组聚合查询的困扰了

mysql查询怎么优化?mysql查询优化的方法介绍

mysql运维-lower_case_table_names

mysql如何删除第一行数据

详解用select命令在mysql执行查询操作的教程

mysql中关于exists和not exists的示例分享

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...