1.Explain执行计划——SQL优化神器

用法:

EXPLAIN SELECT * FROM pms_category WHERE parent_cid=0

运行结果:

通过在SQL语句前面加上explain关键字,执行后并不会真正的执行sql语句本身,而是通过explain 工具来分析当前这条SQL语句的性能细节:比如是什么样的查询类型、可能用到的索引及实际用到 的索引,和一些额外的信息。

2.各字段的解释(重要字段)

   1)select_type列

  • derived:

第一条执行的sql是from后面的子查询,该子查询只要在from后面,就会生成一张衍生表,因此他的查询类型:derived

  • subquery:

在select之后 from之前的子查询

  • primary:

最外部的select

  • simple:

不包含子查询的简单的查询

  • union:

使用union进行的联合查询的类型

    2)table列   

当前查询正在查哪张表

    3)type列

type列可以直观的判断出当前的sql语句的性能。type里的取值和性能的优劣顺序如下:

null > system > const > eq_ref > ref > range > index > all

对于SQL优化来说,要尽量保证type列的值是属于range及以上级别。

   4)id列

在多个select中,id越大越先执行,如果id相同。上面的先执行。

5)possible keys列

这一次的查询可能会用到的索引。也就是说mysql内部优化器会进行判断,如果这一次查询走索引的性能比全表扫描的性能要查,那么内部优化器就让此次查询进行全表扫描——这样的判断依据我们可以通过trace工具来查看

   6)key列

实际该sql语句使用的索引

  7)rows列

该sql语句可能要查询的数据条数

   8)key_len列

        计算规则:       

- 字符串
1. char(n): n字节长度
2. varchar(n): 2字节存储字符串长度,如果是utf-8,则长度3n + 2- 数值类型
1. tinyint: 1字节
2. smallint: 2字节
3. int: 4字节
4. bigint: 8字节- 时间类型
1. date: 3字节
2. timestamp: 4字节
3. datetime: 8字节如果字段允许为NULL,需要1字节记录是否为NULL
索引最大长度是768字节,当字符串过长时, mysql会做一个类似左前缀索引的处理,将前半部分的字符提取出来做索引

   9)ref列

显示该表的索引字段关联了哪张表的哪个字段

   10)extra列

extra列提供了额外的信息,是能够帮助我们判断当前sql的是否使用了覆盖索引、文件排序、使用了索引进行查询条件等等的信息。

mysql中explain执行结果各个字段的意思相关推荐

  1. MySQL中explain执行计划中额外信息字段(Extra)详解

    SQL执行计划是经过优化器决策,产生的SQL在数据库内部执行的访问路径计划: 由如下语法得到: explain select col1,col2 from t1..; desc select col1 ...

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

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

  3. MySQL中的执行计划

    MySQL中的执行计划 在MySQL中可以通过explain关键字模拟优化器执行SQL语句,从而知道MySQL是如何处理SQL语句的: 一.Mysql整个查询执行过程 客户端向MySQL服务器发送一 ...

  4. mysql中explain的使用,mysql使用方法_mysql中explain函数的使用方法

    摘要 腾兴网为您分享:mysql中explain函数的使用方法,英语字典,小熊到家,腾讯新闻,刷机大师等软件知识,以及adobeflashplayerformac,灯光工厂,全民小视频,网盘解析,37 ...

  5. MySQL中Explain用法详解

    Explain简介 我们在写后端程序的时候,通常会写sql来查询数据,如果是单表查询的时候,那直接select就完事了,但是如果是连表查询数据量也不小的话,就造成了查询速度会比较慢,那么我们该怎么知道 ...

  6. 一文搞懂select语句在MySQL中的执行流程!

    MySQL作为互联网行业使用最多的关系型数据库之一,与其免费.开源的特性是密不可分的.然而,很多小伙伴工作了很多年,只知道使用MySQL进行CRUD操作,这也导致很多小伙伴工作多年后,想跳槽进入大厂, ...

  7. 一条sql语句在mysql中如何执行的

    文心阁小说本篇文章会分析下一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的. 在分析之前我会先带着你看看 MySQL ...

  8. mysql 如何把date转换数字_请教:mysql中,如何将date字段转换为int字段?

    你的位置: 问答吧 -> 数据库 -> 问题详情 请教:mysql中,如何将date字段转换为int字段? 刚开始设计数据库时候,没有想到date类型只能精确到某一天,不能精确到秒. 现在 ...

  9. mysql中利用sql语句修改字段名称,字段长度等操作(亲测)

    在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的m ...

最新文章

  1. 【 MATLAB 】nextpow2 函数用法之 Optimize FFT with Padding
  2. linux学习之shell基础篇
  3. 区块链与边缘计算(1)基本概念
  4. vue-cli-plugin-element的使用
  5. 关于Jquery中ajax方法data参数用法的总结
  6. Spring mvc DispatchServlet 实现机制
  7. Ubuntu安装MDK
  8. HDU 4609——3-idiots
  9. c语言字符串匹配函数index,C语言(函数)学习之index、rindex
  10. FreeRTOS内存管理
  11. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(HDU-2191)
  12. 微服务网关(gateway)概述 与 嵌入式 Zuul 反向代理
  13. 微信小程序之设置背景图片
  14. HashMap,LinkedHashMap,TreeMap应用
  15. 1980-2010的87个国家/地区的一些经济和金融发展指标简单归纳和解释以及如何套动态面板公式计算
  16. 微信公众号与服务器ip,微信公众号服务器IP网段与实际IP不一致?无法通过微信公众号推送消息到自己的服务器...
  17. linux配额管理命令,Linux管理员配额管理
  18. 管家婆财贸双全存货核算类型对应会计科目禁止删除
  19. 郭德纲 相声下载(续)
  20. 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)

热门文章

  1. cdr多页面排版_CDR排版跨页图片的制作方法
  2. android adb pull 文件夹,android – 我如何adb拉SD文件夹中的所有文件
  3. Center Loss层
  4. 大一计算机系挂科,大一挂科和大三挂科,哪个后果更严重?实际差距不是一星半点...
  5. C/C++编程学习 - 第6周 ⑦ 分离整数的各个数位
  6. 牛客网练习赛36 Ribbit的数列 分块
  7. 一键adb连接网易Mumu模拟器
  8. Day25 - Event Capture, Propagation, Bubbling and Once
  9. XMind8思维导图 破解版
  10. 习题11-1 输出月份英文名 (15 分)