MySQL查询优化工具explain介绍

发布时间:2020-05-12 10:38:01 作者:三月
来源:亿速云 阅读:306

下文主要给大家带来MySQL查询优化工具explain,希望这些内容能够带给大家实际用处,这也是我编辑这篇文章的主要目的。好了,废话不多说,大家直接看下文MySQL查询优化工具explain吧。

在日常的MYSQL优化中我们常常看到这样一个关键词:explain,例如这种:

EXPLAIN SELECT * FROM Cloud_Order WHERE money > 10;

       explain是什么呢?使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。通过explain命令可以得到:

  1. 表的读取顺序

  2. 数据读取操作的操作类型

  3. 哪些索引可以使用

  4. 哪些索引被实际使用

  5. 表之间的引用

  6. 每张表有多少行被优化器查询


       首先让我们来看看使用EXPLAIN输入的结果
MySQL查询优化工具explain介绍

       结果显示输出了结果一堆字段和对应的值,但是这些字段是什么意思?对应的值又是什么呢?如何通过这些字段来分析到SQL的性能并做出优化呢?别急,下面我们就一起来一一分析。

EXPLANIN字段分析

explain实践

       说了这么多,实践才能出真知。下面我们通过一个简单的例子来优化我们一些不堪的SQL。
       首先我们还是一张数据表举例。表结构如下。

MySQL查询优化工具explain介绍

这是一张典型的订单表,其他字段我们可以省略不看,我们可以只看一个money字段,这基本是订单表都会用到的字段。由于时间关系,事先我已经为这个表准备了一堆模拟数据。


MySQL查询优化工具explain介绍

       从上图可以看出,表中已经有一万条数据,下面我们来写一个根据money条件来查询订单的SQL。

MySQL查询优化工具explain介绍

       只能说上图的结果不尽人意。让我们回到之前explain字段的分析,其中type字段的值是ALL,按照分析来说,这个表用了全表搜索,我们应尽量避免!!!再看rows字段,值是16242,天啊!!所有记录都去请求了,那慢是有原因的。

       好了,通过上面的数据分析,我们可以去想一下,money字段是否能加上索引来提升查询速度呢?因为上述结果中好像是没用到索引的。话不多说,我们来为money字段加上索引

MySQL查询优化工具explain介绍

        加上索引之后,我们再用刚刚的EXPLAIN语句执行一下,见证奇迹的时候到了!

MySQL查询优化工具explain介绍

      经过加上索引之后,相同的sql语句,得出的结果完全不一样,type字段变成了range,我们也看到key显示了money,证明了索引值被用上了。更重要的是rows字段变成了785,跟原来相比少了不知道多少,可想而知性能有了多大的提高!

对于以上关于MySQL查询优化工具explain介绍,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。    

推荐阅读:
  1. MySQL 查询优化
  2. MySQL Explain使用详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql 查询优化 explain

上一篇:JQuery select选中值

下一篇:mysql数据批量删除并且整理表碎片方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》