mysql12----explain
2024-08-29 18:01:15
explain 可以帮助我们在不真正执行某个sql语句时,就执行mysql怎样执行,这样利用我们去分析sql指令.尽量避免全表扫描。
Id:
SELECT识别符。这是SELECT的查询序列号
SELECT * FROM emp WHERE empno = 3 and ename = (SELECT ename FROM emp WHERE empno = 4) \G; select_type:
PRIMARY :子查询中最外层查询
SUBQUERY : 子查询内层第一个SELECT,结果不依赖于外部查询
DEPENDENT SUBQUERY:子查询内层第一个SELECT,依赖于外部查询
UNION :UNION语句中第二个SELECT开始后面所有SELECT,
SIMPLE
UNION RESULT UNION 中合并结果 Table:显示这一步所访问数据库中表名称 Type:对表访问方式
ALL,SELECT * FROM emp \G,完整的表扫描 通常不好
SELECT * FROM (SELECT * FROM emp WHERE empno = 3) a ;
System,表仅有一行(=系统表)。这是const联接类型的一个特
Const,表最多有一个匹配行 Possible_keys:该查询可以利用的索引,如果没有任何索引显示 null Key :所选择使用索引 Rows:执行查询时必须检查的行数
EXPLAIN SELECT * FROM emp WHERE empno < 50 \G;
EXPLAIN SELECT * FROM emp WHERE empno = 50 \G; Extra:查询细节信息
No tables :没查表
Using filesort
当Query中包含 ORDER BY 操作,而且无法利用索引完成排序,
Impossible WHERE noticed after reading const tables: MYSQL Query Optimizer
通过收集统计信息不可能存在结果
Using temporary
某些操作必须使用临时表,常见 GROUP BY ; ORDER BY
Using where
不用读取表中所有信息,仅通过索引就可以获取所需数据; Key_len :被选中使用索引的索引长度
最新文章
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
- Shell入门教程:流程控制(1)命令的结束状态
- SecureCRT中python脚本编写
- Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
- php composer使用经验
- 拓扑排序 POJ 2367
- NYOJ-228 士兵杀敌5
- BZOJ2457 BeiJing2011 双端队列
- android 拨打电话小功能
- 5.ScrollView无法填充满屏幕
- 网页增重不可控?试试 OneAPM Cloud Test
- 获取外网IP地址
- 世界国家名与英文名【json】
- [日常] nginx的错误日志error_log设置
- Jenkins入门,介绍、安装
- linux ntp 时间同步
- CSV文件解析
- 再学Java 之 interface的成员变量
- 使用Bind搭建DNS服务
- 转: 网卡名字eth0,eth1的修改方法