0

0

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

php中文网

php中文网

发布时间:2016-06-07 16:13:26

|

1325人浏览过

|

来源于php中文网

原创

上一章我们将了如何发现慢查询并把语句记录到日志中,那么在发现慢查询后,要怎样才能知道语句的问题发生在哪里。本章将介绍怎样使用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

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

MATLAB与VB混合编程技术研究 WORD版
MATLAB与VB混合编程技术研究 WORD版

本文档主要讲述的是MATLAB与VB混合编程技术研究;着重探讨了在VB应用程序中集成MATLAB实现程序优化的四种方法,即利用Matrix VB、调用DLL动态链接库、应用Active自动化技术和动态数据交换技术,并分析了集成过程中的关键问题及其基本步骤。这种混合编程实现了VB的可视化界面与MATLAB强大的数值分析能力的结合。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载

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,答案自然是创建一个覆盖索引,同样,笔者将会在之后章节介绍覆盖索引如何创建。

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

 


相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Django 教程
Django 教程

共28课时 | 3.2万人学习

Excel 教程
Excel 教程

共162课时 | 12.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号