explain执行计划详解
2021/11/7 6:12:21
本文主要是介绍explain执行计划详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
explain执行计划分析,是SQL优化的重要手段。本节内容:
- explain各属性代表的含义。
EXPLAIN SELECT * FROM department d ; id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra| --|-----------|-----|----------|----|-------------|---|-------|---|----|--------|-----| 1|SIMPLE |d | |ALL | | | | | 2| 100| |
id
id表示查询中执行 select 子句或操作表的顺序。id的执行顺序规则:
- id越大,越先执行。
- id相同,则按从上到下顺序执行。
id相同
EXPLAIN SELECT * FROM employee e ,department d ,customer c WHERE e.cus_id = c.id AND e.dep_id = d.id ;
id不同
EXPLAIN SELECT * FROM department WHERE id = ( SELECT id FROM employee WHERE id =( SELECT id FROM customer WHERE id = 1 ));
EXPLAIN SELECT * FROM department d, (SELECT dep_id FROM employee GROUP BY dep_id) t WHERE d.id = t.dep_id;
select_type
- simple:简单查询,不含子查询、UNION
- primary:复杂查询的最外层查询
- subquery:子查询
- derived:当from后包含子查询时,标记为derived--临时表
- union:union之后的标记位union,前面的是primary
table:所属表
partitions:分区
type 访问类型(很重要!!)
- system:系统只有一条记录,不会出现。memory引擎
- const:通过主键或者唯一索引,定位到一条数据
- eq_ref:使用主键或者唯一性索引扫描
EXPLAIN SELECT * FROM employee e , department d WHERE e.id = d.id;
- ref:非唯一性索引扫描。多出现在多表连接操作。
- range:索引的某个范围查找
- index:扫描索引树
- all:全表扫描
type 最好能达到index之上。
这篇关于explain执行计划详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20实战:30 行代码做一个网页端的 AI 聊天助手
- 2024-11-185分钟搞懂大模型的重复惩罚后处理
- 2024-11-18基于Ollama和pgai的个人知识助手项目:用Postgres和向量扩展打造智能数据库
- 2024-11-15我用同一个提示测试了4款AI工具,看看谁设计的界面更棒
- 2024-11-15深度学习面试的时候,如何回答1x1卷积的作用
- 2024-11-15检索增强生成即服务:开发者的得力新帮手
- 2024-11-15技术与传统:人工智能时代的最后一袭纱丽
- 2024-11-15未结构化数据不仅仅是给嵌入用的:利用隐藏结构提升检索性能
- 2024-11-15Emotion项目实战:新手入门教程
- 2024-11-157 个开源库助你构建增强检索生成(RAG)、代理和 AI 搜索