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

MySQL使用EXPLAIN命令查看SQL的执行计划

1‌、EXPLAIN 的语法

MySQL 中的 EXPLAIN 命令是用于分析 SQL 查询执行计划的关键工具,它能帮助开发者理解查询的执行方式并找出性能瓶颈‌‌。

语法格式:

EXPLAIN <sql语句>

【示例】查询学生表关联班级表的执行计划。

(1)创建班级信息表和学生信息表,并创建索引和添加数据

-- 创建数据库
CREATE DATABASE IF NOT EXISTS db_school;-- 使用数据库
USE db_school;-- 创建数据表:tbl_class(班级信息表)
DROP TABLE IF EXISTS tbl_class;
CREATE TABLE IF NOT EXISTS tbl_class
(class_id BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '班级ID',class_name VARCHAR(50) NOT NULL COMMENT '班级姓名'
) COMMENT = '班级信息表';-- 创建数据表:tbl_student(学生信息表)
DROP TABLE IF EXISTS tbl_student;
CREATE TABLE IF NOT EXISTS tbl_student
(student_id BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',student_name VARCHAR(50) NOT NULL COMMENT '学生姓名',class_id BIGINT(20) NOT NULL COMMENT '班级ID'
) COMMENT = '学生信息表';
SELECT * FROM tbl_student;-- 创建索引(普通索引)
CREATE INDEX idx_class_id ON tbl_student(class_id);-- 创建数据:tbl_class(班级信息表)
TRUNCATE TABLE tbl_class;
INSERT INTO tbl_class(class_name) VALUES('高一(1)班');
INSERT INTO tbl_class(class_name) VALUES('高二(2)班');
SELECT * FROM tbl_class;-- 创建数据:tbl_student(学生信息表)
TRUNCATE TABLE tbl_student;
INSERT INTO tbl_student(student_name,class_id) VALUES('张三', 1);
INSERT INTO tbl_student(student_name,class_id) VALUES('李四', 1);
INSERT INTO tbl_student(student_name,class_id) VALUES('王五', 1);
INSERT INTO tbl_student(student_name,class_id) VALUES('孙六', 2);
INSERT INTO tbl_student(student_name,class_id) VALUES('赵七', 2);
SELECT * FROM tbl_student;

(2)使用 EXPLAIN 命令,查看执行计划

-- 使用 EXPLAIN 命令,查看执行计划
EXPLAIN 
SELECT * FROM tbl_student
LEFT JOIN tbl_class ON tbl_student.class_id

相关文章:

  • 【Linux】Linux多路复用-epoll
  • CSS预编译语言less
  • DP刷题练习(一)
  • 软件工程的相关名词解释
  • PostgreSQL的扩展pg_visibility
  • BeckHoff <---> Keyence (LJ-X8000) 2D相机 Profinet 通讯
  • # 把 ISO 写入 U 盘(相关了解)
  • 《深度学习:基础与概念》第一章 学习笔记与思考
  • VBA使用字典统计
  • 键盘按键枚举 Key 说明文档
  • [创业之路-418]:经济学 - 凯恩斯主义的需求管理与西方供应侧理论、供需关系理论详解以及对创者者的启示
  • 【leetcode】78. 子集
  • 湖北理元理律师事务所债务规划方法论:法律框架下的可持续还款体系
  • 义乌购商品详情接口开发指南
  • 详解Java的启动参数-Dfile.encoding、System.getProperty(“file.encoding“)、该参数影响哪些行为
  • Atcoder Beginner Contest 410 题解报告
  • 生产者消费者消息流转和基本实操
  • Golang 在 Linux 平台上的并发控制
  • Vue3 + TypeScript + Element Plus 表格实例null检查方法
  • 18.vue.js的scoped样式隔离?原理和使用?(1)
  • 做外贸业务去哪些网站/不死鸟分享友情链接
  • 如何后台修改网站联系人/360公司官网首页
  • 新型城镇化建设网站/怎么建个网站
  • php和python做网站/百度文库个人登录入口
  • 开发网页的常用软件/网站的优化和推广方案
  • h5商城网站怎么建立/东莞seo管理