MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。

参考官方文档地址:

为什么用explain . 如果你的页面返回结果很慢,你就需要使用explain去分析你的sql是否需要优化了.

1/ 官方定义

The EXPLAIN statement provides information about how MySQL executes statements:

explain 语句提供 mysql 语句执行信息.

2/ 注意点

1) explain 能分析的语句包括 'SELECT, DELETE, INSERT, REPLACE, and UPDATE

2) explain 可以分析某个mysql的connection Id

3) 使用explain 查看索引的使用 和 表的连接顺序 ,以提高查询速度

4) 如果你有索引,但是没有使用上,你需要ANALYZE TABLE.

补充mysql索引失效的情况.

1 where 条件中有or

2 多列索引不是第一部分

3 like查询以%开头

4 字段类型是字符串,而where条件是数字

5 mysql自己估计全表扫描比索引快的时候(假设数据结果数量已知,可通过索引的count()获取结果集数量,因为索引是根据位置去0(1)读取,所以结果集数量为T则读取T次,全表扫描读取数据Block,假设数据量紧凑存储在N个Block上,全表扫描读取N次,一般在T>N,且达到某个比例的时候,此比例是否可设置有待研究,mysql不使用索引)

SHOW SESSION STATUS LIKE 'Handler_read%'

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数

handler_read_rnd_next:这个值越高,说明查询低效

3/ 输出格式

重点关注:

1 key 是否使用索引

2 rows 查询返回的结果集数量

3 filtered 过滤的结果.

rows * filtered 得出将要关联的数据条目数量.所以filtered 越小越好,rows 也是越小越好

***

explain connection Id 会分析链接最近一次执行的sql语句. 结果会变动,甚至如果语句不是insert ,select 等操作会报错. show warnings

以上所述是小编给大家介绍的Mysql Explain 命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

mysql explain insert_简述Mysql Explain 命令相关推荐

  1. mysql mediumblob insert_(Java+MySQL)MySQL大字段(数据类型mediumblob)存储图片、doc文件失败,请问是什么原因?...

    我在复习Java的JDBC部分时,参照书上做大字段存取的练习,遇到了问题,特来求助,希望大哥们帮我看下: 我建了一个数据表,表结构如下: mysql> desc file_table; +--- ...

  2. MySql数据库explain用法示例_mysql explain的用法

    MySQL的EXPLAIN命令显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 一.通过expalin可以得到 1.表的读取顺序 2.表的读 ...

  3. mysql字段名explain_Mysql中explain用法和结果字段的含义介绍

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开 分享一下大神老师的人工智能教程.零基础!通俗易懂!风趣幽默(偶尔开开车,讲讲黄段子)! 大家可以看看是否对自己有帮助,如果你 ...

  4. Mysql性能调优工具Explain结合语句讲解

    Explain简称执行计划,可以模拟SQL语句,来分析查询语句或者表结构是否有性能瓶颈. Explain的作用有哪些,可以看到哪些? 可以看到表的读取顺序,数据读取操作的操作类型,哪些索引可以使用,哪 ...

  5. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  6. MySQL调优系列:explain分析SQL的执行计划

    一条SQL的执行计划自我描述 [提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 大数据代码案例地址: https://github. ...

  7. MySQL Explain详解,explain查询结果每列含义详细解释

    转自:https://www.cnblogs.com/xuanzhi201111/p/4175635.html MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较 ...

  8. 最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用

    最全MySQL8.0实战教程 文章目录 最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用 [黑马程序员MySQL知识精讲+mysql实 ...

  9. Mysql——索引底层数据结构与Explain用法

    Mysql--索引底层数据结构与Explain用法 一.索引底层数据结构 1.Mysql不同引擎对应的数据结构 2.B+Tree数据结构 2.1. 二叉树 (Binary Search Trees) ...

最新文章

  1. PNAS | 菌群大战:“单打独斗之殇”与“分而治之之利”
  2. 人生第一次删好友,删的就是你!连路飞都怒了!
  3. Java线程之生命周期
  4. 1026-压力传感器分类及原理集锦
  5. 概率论中的一些基础知识——条件概率 先验概率 后验概率 似然 概率分布函数 概率密度函数
  6. RCTF crypto100(1)
  7. 新版标准日本语中级_第二十七课
  8. NVIDIA图形处理单元(GPU)驱动安装指南
  9. 创业公司股权架构搭建原则
  10. android 火车购票功能,基于Android的火车票售票系统的设计与实现.doc
  11. Codeforces Round #831 (Div. 1 + Div. 2) problem C
  12. 第1节 基本数据类型分析
  13. Freemarker生成word:导出多张图片list、同时导出文字+图片的list
  14. 基于Socket实现远程木马
  15. HttpClient如何进行ssl连接呢?
  16. 网页如何防篡改?可以选择快卫士
  17. 【超长序列建模】美团CIKM‘22:《Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction》
  18. solidwork放置螺丝孔以及显示螺纹的问题
  19. SEO人员,怎么将网站关键词排进SERP前十名?
  20. python Linux学习之 ansible-- ansible test -m ping运行错误

热门文章

  1. 腾讯TAD Sim2.0领跑自动驾驶仿真市场 双擎驱动构建新一代仿真平台
  2. OpenStack绝非昨日黄花 | 人物志
  3. 短暂相逢却回味无穷,全球最具影响力的以太坊技术会议视频,你保存了吗!...
  4. java 寻找峰值峰谷_寻找峰值
  5. oracle32位客户端安装教程,Win7系统32位Oracle11g客户端安装详述
  6. mysql写偏斜_【MySQL】探究之常用SQL
  7. H5 移动端 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡
  8. PMP考试技巧(必备)
  9. PLSQL 日期格式修改
  10. windows下载、安装运行redis