当前位置: 首页 > news >正文

【MySQL进阶 | explain执行计划】

前言:

前面学习的三种sql语句性能分析的工具,分别为sql执行频率,慢查询日志以及profile,这些都是在时间的层次粗略的来评判一条sql语句的性能。想要真正评判一条sql语句的性能,还需要借助explain执行计划。


使用:

explain执行计划的使用也很简单,只需要在select查询语句前写下explain,如图:


执行该sql语句后,可以得到如下的表:

1.id:select查询的序列号,表示查询中select子句或者是操作表的顺序。(id相同,执行顺序从下到上;id不同,值越大,越先执行

2.select_type:表示select的类型,常见的取值有SIMPLE(简单表,即不使用表连接或者子查询)、PRIMARY(主查询,即外层的查询)、UNION(UNION中第二个或者后面的查询语句)、SUBQUERY(select/where之后包含了子查询)等

3.table:表示查询的表。图中表示查询的为tb_voucher这张表。

4.type:显示了MySQL在表中找到所需行的访问方式。从优到劣依次为:

1.system:表中只有一行数据。基本遇不到。

2.const:根据主键或者唯一索引可能为const。结果最多返回一行

3.eq_ref:多表查询时,使用主键索引或唯一索引关联字段。对于左表的每一行,右表最多返回一行。

4.ref:根据非唯一性索引可能为ref。结果可能为多行。

5.range:使用索引进行范围查询。

6.index:用了索引,但也会对索引进行扫描,遍历整个索引数。

7.ALL:全表扫描,表稍微大一点,性能就会很低。

5.possible_keys:表示可能用到的索引。图中表示可能用到主键索引。

6.key:表示实际用到的索引。图中表示实际用到的索引为主键索引。

7.key_len索引的长度。图中表示索引长度为8。

8.rows:MySQL:预估扫描的记录数

9.filtered:返回的行数占预估行数的百分比

10.Extra:额外执行信息,决定SQL的最终质量。常见信息如下:

1.using index:覆盖索引。查询列都在索引中,无需回表查询。关于覆盖索引,以下链接末尾有详细说明。

【MySQL进阶 | 索引】语法和使用规则-CSDN博客

2.using where:使用where条件过滤。

3.using filesort:文件排序,无法使用索引,速度慢。

4.using temporary: 使用临时表,速度慢。

http://www.jsqmd.com/news/461393/

相关文章:

  • The_Maya_Society
  • Postman+CLA+Jenkins接口测试
  • Java继承-多态
  • 运营批量作图工具推荐:潮际好麦商品套图如何支撑日均百款上新?
  • 好利来卡回收注意事项,畅回收平台,安全可靠 - 畅回收小程序
  • 企业级日志平台实战:ELK + Filebeat + Kafka + ZooKeeper
  • 电脑提示Component mscomm32.ocx or one of its解决办法
  • Fastadmin 解决安全提示:为了你的后台安全,请勿将后台管理入口设置为admin或admin.php问题
  • [linux] 本地部署网页(windows下载node.js, 安装pnpm)
  • 【UI自动化测试】5_TPshop项目实战 _批量运行测试用例(重点)
  • 线程池学习2
  • AI时代人人都是产品经理:团队协同:AI 时代,产品经理与算法 / 研发团队的高效协同技巧
  • 嵌入式开发之C语言入门:从基础到核心语法
  • 云南昆明软式透水管安装方法
  • 基于微信小程序的教育宝学习小助手的设计与实现
  • 2026 现象级 AI 工具 OpenClaw 全解析:本地部署、自动化实战与技术揭秘
  • # Openssl关键知识
  • windows 7 用户账户的三种类型
  • Component mscomm32.ocx not correctly registered,file is missing or invalid
  • 基于Java springboot海洋馆预约系统(源码+文档+运行视频+讲解视频)
  • 基于微信小程序的家校互动平台开发与设计
  • 打开软件就弹出msvcp140.dll如何修复? 附免费下载方法分享
  • 双系统给ubuntu扩容
  • springboot基于协同过滤算法的个性化音乐推荐系统
  • 【Matlab】MATLAB教程:符号求导(以diff(x²+2x,x)为核心案例)
  • 基于微信小程序的社区养老服务系统的设计与实现
  • 二分查找的大致了解
  • Python实战:将字符串转换为6位数字密码(附完整代码)
  • 靠谱的工业显示器领先公司
  • Java继承-重写