云计算百科
云计算领域专业知识百科平台

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

赞(0)
未经允许不得转载:网硕互联帮助中心 » MySQL使用EXPLAIN命令查看SQL的执行计划
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!