MySQL 查询优化 explain -电脑资料2025-01-01 在分析查询性能时,考虑 EXPLAIN 关键字同样很管用,
EXPLAIN 关键字一般放在 SELECT 查询语句的前面,用于描述 MySQL 如何执行查询操作、以及 MySQL 成功返回结果集需要执行的行数
explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作
一、MySQL 查询优化器是如何工作的 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行
最终目标是提交 SELECT 语句查找数据行,而不是排除数据行
优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快
假如能够首先进行最严格的测试,查询就可以执行地更快
EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 项说明 idMySQL Query Optimizer 选定的执行中查询的序列号
表示查询中执行 select 子句或操作表的顺序,id 值越大优先级越高,越先被执行
id 相同,执行顺序由上至下
select_type 查询类型说明 SIMPLE 简单的 select 查询,不使用 union 及子查询 PRIMARY 最外层的 select 查询 UNIONUNION 中的第二个或随后的 select 查询,不 依赖于外部查询的结果集 DEPENDENT UNIONUNION 中的第二个或随后的 select 查询,依 赖于外部查询的结果集 SUBQUERY 子查询中的第一个 select 查询,不依赖于外 部查询的结果集 DEPENDENT SUBQUERY 子查询中的第一个 select 查询,依赖于外部 查询的结果集 DER