最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

数据库调优教程(四)Explain性能分析命令

来源:懂视网 责编:小采 时间:2020-11-09 14:07:09
文档

数据库调优教程(四)Explain性能分析命令

数据库调优教程(四)Explain性能分析命令:上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用Mysql提供的数据库性能分析命令,对sql语句进行分析。 二、数据库性能分析Explain命令 Explain的作用是生成一个QEP(查询
推荐度:
导读数据库调优教程(四)Explain性能分析命令:上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用Mysql提供的数据库性能分析命令,对sql语句进行分析。 二、数据库性能分析Explain命令 Explain的作用是生成一个QEP(查询

上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用Mysql提供的数据库性能分析命令,对sql语句进行分析。 二、数据库性能分析Explain命令 Explain的作用是生成一个QEP(查询执

上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用Mysql提供的数据库性能分析命令,对sql语句进行分析。

二、数据库性能分析Explain命令

Explain的作用是生成一个QEP(查询执行计划),可以帮助我们在不真正执行某个sql语句时,就看到mysql怎样执行,这样方便我们去分析sql指令的好坏。

执行如下语句

Explain select * from emp where empno = 3333\G
\

对于返回的信息,我们主要关心一下几个

1) Type

ALL全表扫描,通常是【本文来自鸿网互联 (http://www.68idc.cn)】不好的,其他的如index、range、const、ref、system则是较好的

2) Possible_keys

可能被用到的索引

3) Key

查询过程中实际使用的索引,当为null时表示没有使用索引,通常是不好的

4) key_len

索引字段最大可能使用的长度,也叫索引基数。索引基数越大,表明可能查找的行数越多,查询效率越慢。

5) Rows

MySQL 估计的需要扫描的行数。只是一个估计。越多表明查找的行数越多,自然越慢。

6) Extra

显示上述信息之外的其它信息,非常重要。其主要有一下返回结果。

Usingindex

表明此查询使用了覆盖索引(CoveringIndex),即通过索引就能返回结果,无需访问表。(覆盖索引是一种非常优秀的索引,其使用见http://blog.csdn.net/hzy38324/article/details/44857721)

若没显示"Usingindex"表示读取了表数据。

Usingindex condition

可能会使用索引

Usingwhere

表示 MySQL 服务器先读取整行数据,再检查此行是否符合 where 句的条件,符合就留下,不符合便丢弃。效率较慢。

Usingfilesort

表示Mysql会按查询所需的顺序对结果进行排序,这时就会出现 Usingfilesort 。排序自然会增加查询时间,导致效率变慢。解决方法是利用索引进行排序。若查询所需的排序与使用的索引的排序一致,因为索引是已排序的,因此按索引的顺序读取结果返回,此时就不会出现Using filesort。

关于“Using index” 和 “Using index condition”的区别,笔者参考了一下stackoverflow上的一篇文章

http://stackoverflow.com/questions/1687548/mysql-explain-using-index-vs-using-index-condition

里面是这么解释的

\

简单的说

Using index就是一定使用索引,这种索引成为覆盖索引,Using index condition则是在必要的时候才使用索引

怎样才能让Usingindex condition变成Using index,答案自然是创建一个覆盖索引,同样,笔者将会在之后章节介绍覆盖索引如何创建。

本章结束,下一章我们将全面讲解性能优化的利器——索引。


声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

数据库调优教程(四)Explain性能分析命令

数据库调优教程(四)Explain性能分析命令:上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用Mysql提供的数据库性能分析命令,对sql语句进行分析。 二、数据库性能分析Explain命令 Explain的作用是生成一个QEP(查询
推荐度:
标签: 教程 数据库 命令
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top