当前位置:  数据库>mysql

查询优化之EXPLAIN的使用分析

    来源: 互联网  发布时间:2014-10-09

    本文导语:  不同的SQL语句写法,往往会带来很大的性能差异,我们怎么才能知道执行SQL查询开销呢?MySQL为我们提供了EXPLAIN关键词,在你的select语句前加上EXPLAIN关键词,MySQL将解释它是如何处理的SELECT查询,提供有关表如何联接和联接的...

不同的SQL语句写法,往往会带来很大的性能差异,我们怎么才能知道执行SQL查询开销呢?MySQL为我们提供了EXPLAIN关键词,在你的select语句前加上EXPLAIN关键词,MySQL将解释它是如何处理的SELECT查询,提供有关表如何联接和联接的次序,所扫描的记录数等相关信息,你可以凭借这些信息,来优化你的SQL查询。
EXPLAIN select id, username from userinfo where username like '%peng%';
我们在查询语句前加上了EXPLAIN关键词,那么我们可以得到如下的报告。

代码如下:

id: 1
select_type: SIMPLE
table: userinfo
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
rel: NULL
rows: 6
Extra: Using where

大概解释下每一个数据项的含义:
id: SELECT识别符,SELECT的查询序列号;
select_type: SELECT类型,可以是SIMPLE(简单查询)、PRIMARY(最外面的select)等;
table:用到的表
type: 联接类型
possible_keys: 可用索引列
key: 实际用到的索引列
key_len: 键长度
rel: 使用哪个列或常数与key一起从表中选择行
rows: 检查的行数
Extra: 该列包含MySQL解决查询的详细信息

更具体的解释请查阅MySQL手册,在这里,把手册的内容再抄一遍并没有什么意义,当你有了这些参考数据后,就能更准确的完成MySQL查询优化了。


    
 
 

您可能感兴趣的文章:

  • MySQL查询优化之explain的深入解析
  • mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  • HBase上使用SQL查询 Phoniex
  • 问个比较菜的问题: LINUX如何查询C函数的使用方法?
  • !!Unix下如何在程序中查询出剩余磁盘空间?应该使用什么函数?
  • 在SQL中使用convert函数进行日期的查询的代码
  • linux下面如何查询某个进程正在使用的socket句柄数量
  • Oracle层次查询和with函数的使用示例
  • 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
  • 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
  • c#中使用SqlDataReader查询数据库
  • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
  • 在SQL查询中使用LIKE来代替IN查询的方法
  • MySQL中使用case when 语句实现多条件查询的方法
  • sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)
  • 使用SQL Server数据库嵌套子查询的方法
  • 请问在Red Hat Linux下怎么使用find exec组合命令查询全部的shell可执行文件并删除这些文件 ?
  • 强制SQL Server执行计划使用并行提升在复杂查询语句下的性能
  • 菜鸟问题:请问如何使用UNIX命令查询系统(小型机)的硬件资源
  • MYSQL使用inner join 进行 查询/删除/修改示例
  • 使用Linq查询List中数据的代码
  • 分享:在存储过程中使用另一个存储过程返回的查询结果集的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Mysql大表查询优化技巧总结及案例分析
  • Web日志分析查询 Spindle
  • MongoDB 查询分析
  • 中学成绩查询分析系统
  • SQL查询分析工具 SQL Workbench/J
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享
  • sql server 2008时间查询问题分析
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • MySQL随机查询记录的效率测试分析
  • SQL 查询分析中使用net命令问题
  • MySQL前缀索引导致的慢查询分析总结
  • 浅谈SQL Server中统计对于查询的影响分析
  • sql server数据分组查询脚本分析
  • python自动化工具日志查询分析脚本代码实现
  • Oracle查询语句中rownum与rowid的不同之处分析
  • shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
  • mysql中提高Order by语句查询效率的两个思路分析
  • mysql服务器查询慢原因分析与解决方法小结
  • SQL查询中in和exists的区别分析
  • Oracle使用hash分区优化分析函数查询
  • SQL多表连接查询实例分析(详细图文)
  • MongoDB 2.5新查询引擎简介
  • mysql查询语句通过limit来限制查询的行数
  • Mysql查询错误:ERROR:no query specified原因
  • red hat 4.6如何查询到底有几个swap分区?如何查询是否都激活了?
  • Mysql设置查询条件(where)查询字段为NULL
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • MySQL查询优化:用子查询代替非主键连接查询实例介绍
  • Mysql Select查询执行流程介绍及实例
  • having与子查询 查询各门课程超过80分的学生姓名


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3