Explain执行计划详解

本文详细介绍了MySQL的Explain工具,用于分析SQL查询的执行计划,包括Explain的基本用法、各列信息及其意义,如id、select_type、table、type等,帮助开发者理解查询语句的执行过程和性能瓶颈。
摘要由CSDN通过智能技术生成

作者:IT王小二

博客:https://itwxe.com

一条查询 SQL 语句为什么会执行很慢?执行的时候走了什么索引?多表查询的时候 SQL 大体执行流程是怎么样的?Explain 执行计划详解给各位客官一一道来。

一、示例MySQL安装方式和版本

首先需要 MySQL 安装的客官看这两篇,小二演示使用的是 Docker 的安装方式:

小二安装完的 MySQL 数据库版本为 5.7.36

二、Explain工具简介

通常我们在生产环境会碰到查询速度比较慢的 SQL 语句,那么怎么知道 SQL 语句为什么执行慢呢?这个时候就需要用到 Explain 执行计划来分析我们的语句了。

通过使用 Explain 关键字可以模拟优化器执行 SQL 查询语句,执行会返回执行计划的信息,而不是执行这条SQL,当然如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中 。

总的来说,通过 Explain 从而知道 MySQL 是如何处理你的 SQL 语句的,分析查询语句或是表结构的性能瓶颈。那么通过 Explain 执行计划可以知道:

  • 表的读取顺序
  • 数据读取操作的操作类型
  • 哪些索引可能被使用
  • 哪些索引实际被使用
  • 表之间的引用
  • 每张表估计有多少行会被执行

三、本文用到的示例表

CREATE TABLE `author` (
  `id` int(11) NOT NULL,
  `name` varchar(45) DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `author` (`id`, `name`, `update_time`) VALUES (1,'itwxe','2022-01-12 19:27:18'), (2,'admin','2022-01-12 19:27:18'), (3,'superAdmin','2022-01-12 19:27:18');

CREATE TABLE `blog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_title` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `blog
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值