上文回顾:
-
查询执行计划:explain + SQL语句
例如:explain select * from tb;
id: 编号
select_type: 查询类型
table :表
type:类型
possible_keys:预测用到的索引
keys:实际使用的索引
key_len: 实际索引的长度
ref:表之间的引用
rows:通过索引查询到的数据量
Extra:额外的信息
- 查询顺序
- 在ID值相同的情况下,数据量小的表,优先查询 (原因:笛卡儿积现象)
- 在ID值不同的情况下,ID值越大越优先执行查询(本质:在嵌套子查询时,先查内层,再查外层)
- select_type字段下的值:
- primary: 包含子查询SQL中的主查询(最外层)
- SUBQUERY: 包含子查询SQL中的子查询(非最外层)
- simple: 简单查询(不包含子查询。union)
- derived:衍生查询(使用到了临时表)
a. 在from子查询中只有一张表
b. 在from子查询中,如果有table1 union table2. 则table1就是derived - union:上例
- union result: 告知开发人员哪些之间存在union
本文详细介绍了MySQL查询优化的技巧,包括使用EXPLAIN分析查询执行计划,理解查询顺序,以及SELECT_TYPE字段的不同含义。重点讲解了如何利用索引来提升查询效率,如B树索引的工作原理,并提示了关注ID值、数据量和查询类型对于优化的重要性。
1591

被折叠的 条评论
为什么被折叠?



