解释mysql中的计划含义
我使用解释计划,但我不知道它的真正含义是什么解释mysql中的计划含义,mysql,sql,Mysql,Sql,我使用解释计划,但我不知道它的真正含义是什么 explain extended select * from (select type_id from con_consult_type cct where cct.consult_id = (select id from con_consult where id = 1)) cctt left
explain extended
select *
from (select type_id from con_consult_type cct
where cct.consult_id = (select id
from con_consult
where id = 1))
cctt left join con_type ct on cctt.type_id = ct.id;
结果是
我谷歌派生的是临时表,但它的sql是什么临时表?是ctt表吗?
步骤2是cctt左连接con_类型ct在cctt.type_id=ct.id上的结果?
FK_CONSULT_TO_CONSULT_类型为CONSULT_id refere con_CONSULT id列,
如何在sql中使用索引?
获取ctt的所有结果,然后使用索引过滤器
请帮助我解释解释的含义。这是一个糟糕的查询,要了解
解释
输出的基础知识,所有子查询和联接都会发生太多问题
我可以简略地介绍一些要点
- “行”列:越少越好,它显示数据库必须扫描多少行,少于几百行越好,通常表示它能够从索引中找到您的数据李>
- “可能的_键”:和“键”:如果“行”很大,您可能需要tweek您的键,以便为引擎提供查找数据的帮助
- “类型”:联接的类型
- “临时表的sql”-它是sql中的第一个子查询
- 使用
您无需执行任何操作,引擎已将其作为索引,这就是解释所说的FK_CONSULT_TO_CONSULT_TYPE
- 查询分为3个基本步骤;选择数据、筛选和联接。explain中的每一行都是这些操作中一个或多个操作的详细信息,它可能不一定与SQL的特定部分相关,因为引擎可能已将各个部分组合成一个部分