mysql的执行计划的Extra详细说明

#distinct: 一旦mysql找到了与行相联合匹配的行,就不再搜索了,极少见


#Using index:这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。是性能高的表现。
#using index也叫索引覆盖
explain select id,name from film order by id;

#Using where:mysql服务器将在存储引擎检索行后再进行过滤。就是先读取整行数据,再按 where 条件进行检查,符合就留下,不符合就丢弃。
explain select * from film where id > 1;

#using temporary:mysql需要创建一张临时表来处理查询。出现这种情况一般是要进行优化的,首先是想到用索引来优化。
explain select distinct name from actor;
create index idx_name on actor(name);

#using filesort:采用文件扫描对结果进行计算排序,效率很差
#对于排序,只有select 字段 与order by 字段都被索引覆盖是才允许使用Using Index
explain select name ,update_time from actor order by update_time, name;
create index idx_name_ut on actor(name,update_time);

posted @ 2020-08-04 19:49  wuxiaomiao  阅读(1678)  评论(0编辑  收藏  举报