【数据库】MySQL EXPLAIN 命令详解

news/2024/11/24 22:06:06/

explain官网解释

explain主要用来优化sql,包括表结构的索引设计,查询语句优化等。今天就来看看这个命令返回的字段都是什么意思。

mysql> explain select * from teacher;
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | teacher | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    8 |   100.00 | NULL  |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

 

详细说明如下:

测试表及数据

#--教师表
create table `teacher`(`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) not null, #--姓名`tno` char(12) not null, #--老师编号primary key (`id`),unique index ux_idx_tno(tno(12))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;#--学生表
create table `students` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL, #--学生姓名`sno` char(12) NOT NULL, #--学号`age` int(3) NOT NULL DEFAULT '0',	#--年龄`sex` tinyint(1) NOT NULL DEFAULT '1', #--性别primary key (`id`),unique index ux_idx_sno(sno(12))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;#--专业表
create table `subject`(`id` int(11) NOT NULL AUTO_INCREMENT,`sjno` char(15) NOT NULL, #--科目编号`title` varchar(20) NOT NULL, #--科目名称PRIMARY KEY (`id`),unique index ux_idx_sjno(sjno(15))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;#--老师-专业表
create table `teacher_subject`(`id` int(11) NOT NULL AUTO_INCREMENT,`tno` char(12) not null, #--老师编号`sjno` char(15) NOT NULL, #--科目编号PRIMARY KEY (`id`),unique index ux_idx_tno_sjno(tno(12), sjno(15))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;#--学生-专业表
create table `students_subject`(`id` int(11) NOT NULL AUTO_INCREMENT,`sno` char(12) not null, #--学生编号`sjno` char(15) NOT NULL, #--科目编号PRIMARY KEY (`id`),unique index ux_idx_sno_sjno(sno(12), sjno(15))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;#--插入老师测试数据 老师号编号规则 T+4位学校编号+7位(千万)顺序编号
insert into teacher (name,tno)  values('刘德华','T20200000001');
insert into teacher (name,tno)  values('赵丽颖','T20200000002');
insert into teacher (name,tno)  values('杨紫','T20200000003');
insert into teacher (name,tno)  values('刘亦菲','T20200000004');
insert into teacher (name,tno)  values('陈伟霆','T20200000005');
insert into teacher (name,tno)  values('古力娜扎','T20200000006');
insert into teacher (name,tno)  values('李易峰','T20200000007');
insert into teacher (name,tno)  values('鹿晗','T20200000008');#--插入学生测试数据 学号编号规则 4位年份+4位专业+2位班级+2位顺序编号
insert into students (name,sno,age,sex) values('雷军','202110021201',18,1);
insert into students (name,sno,age,sex) values('马云','202110021202',18,1);
insert into students (name,sno,age,sex) values('马化腾','202110021203',18,1);
insert into students (name,sno,age,sex) values('刘强东','202110021204',18,1);
insert into students (name,sno,age,sex) values('章泽天','202110021205',18,2);
insert into students (name,sno,age,sex) values('董明珠','202110021206',18,2);
insert into students (name,sno,age,sex) values('杨惠妍','202110021207',18,2);
insert into students (name,sno,age,sex) values('玛丽亚·弗兰卡·费索洛','202110021208',18,2);#--插入专业测试数据 科目编号规则 无
insert into subject (sjno,title) values('B080901','计算机科学与技术');
insert into subject (sjno,title) values('A050106','中国现当代文学');
insert into subject (sjno,title) values('A081001','通信与信息系统');
insert into subject (sjno,title) values('B080703','通信工程');
insert into subject (sjno,title) values('B080903','网络工程');
insert into subject (sjno,title) values('B080902','软件工程');
insert into subject (sjno,title) values('A083501','软件工程');
insert into subject (sjno,title) values('A081203','计算机应用技术');#--插入老师-专业测试数据
insert into teacher_subject (tno,sjno) values('T20200000001', 'A050106');
insert into teacher_subject (tno,sjno) values('T20200000002', 'A081001');
insert into teacher_subject (tno,sjno) values('T20200000003', 'B080901');
insert into teacher_subject (tno,sjno) values('T20200000004', 'B080703');
insert into teacher_subject (tno,sjno) values('T20200000005', 'B080903');
insert into teacher_subject (tno,sjno) values('T20200000006', 'B080902');
insert into teacher_subject (tno,sjno) values('T20200000007', 'A083501');
insert into teacher_subject (tno,sjno) values('T20200000008', 'A081203');#--插入学生-专业测试数据
insert into students_subject (sno,sjno) values('202110021201', 'A050106');
insert into students_subject (sno,sjno) values('202110021202', 'A081001');
insert into students_subject (sno,sjno) values('202110021203', 'B080901');
insert into students_subject (sno,sjno) values('202110021204', 'B080703');
insert into students_subject (sno,sjno) values('202110021205', 'B080903');
insert into students_subject (sno,sjno) values('202110021206', 'B080902');
insert into students_subject (sno,sjno) values('202110021207', 'A083501');
insert into students_subject (sno,sjno) values('202110021208', 'A081203');

 


http://www.ppmy.cn/news/227900.html

相关文章

Android开发:ListView用SimpleAdapter来实现自定义布局和点击

ListView用SimpleAdapter来实现自定义布局和点击 简单的ListView只能实现文字的列表显示。这里就不过多的介绍了,可自行百度找下。 而这次我介绍的是ListView用SimpleAdapter来实现自定义布局和点击。 一、首先要自定义一个列表的样式list_item_layout.xml文件。 …

HTTP数字码意义

概要 当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体…

今天懒一次 豆瓣电影Top250

今天不写代码&#xff0c;休息一下 1 import requests2 from lxml import etree3 from urllib import parse4 offset -255 i 06 url https://movie.douban.com/top250?start7 8 while offset < 225:9 offset 25 10 11 start_urls (urlstr(offset)) 12 h…

内存溢出,设置eclipse中的tomcat参数

1.双击servers &#xff0c;进入tomcat配置页面 2.点击 open lauch configuration ,进入tomcat配置页面&#xff0c;选择arguments 3.在VM arguments ,输入 set JAVA_OPTS-server -Xms768m -Xmx1024m -XX:PermSize256M -XX:MaxNewSize512m -XX:MaxPermSize512m -Djava.awt.he…

http400错误经历

一、先引用一下别的处理方案 Http的Get/Post请求带有特殊字符&#xff0c;400 Bad Request解决方案 今天做项目的时候&#xff0c;需要向服务器接口 传递 json参数&#xff0c;使用 apache 的 httpclient&#xff0c;当时没有对参数做特殊处理直接提交了&#xff0c;结果运行…

传瑞幸咖啡获新一轮融资,投前估值达20亿美元

11月6日消息&#xff0c;据路透社周二援引消息来源称&#xff0c;瑞幸咖啡正计划进行新一轮2亿至3亿美元融资&#xff0c;将公司估值提升至15亿到20亿美元。 投资界从接近瑞幸咖啡人士了解到&#xff0c;瑞幸咖啡目前投前估值20亿美元&#xff0c;不是实现15&#xff5e;20亿美…

11g空表无法导出

select analyze table || table_name || compute statistics; from user_tables; select analyze index || index_name || compute statistics; from user_indexes; 1.查询所有空表并分配segment&#xff0c;使用以下语句查询生成修改空表设置的SQL: select ‘alter tabl…

腾讯入局、估值超10亿美元,“野路子”瑞幸的三大增长法则

今年3月&#xff0c;一则由汤唯、张震出演的广告短片突然进入大众视野&#xff0c;并迅速在社交网络掀起热潮。在“这一杯&#xff0c;谁不爱”的广告轰炸下&#xff0c;luckincoffee&#xff08;瑞幸咖啡&#xff09;在短短10个月内&#xff0c;将线下门店开到了1400家&#x…