mysql> explain select * from emp where sal > (select avg(sal) from emp) ; 7.dependent subquery: 子查询中的第一个select(不在from子句中),而且取决于外面的查询。 mysql> explain select e1.* from emp e1 WHERE e1.deptno = (SELECT deptno FROM emp e2 WHERE e1.empno = e2.empno); 8.der...
使用mysql提供的explain命令来查询sql语句的执行计划,查看sql语句有没有使用上索引,有没有全表扫描等。 expain出来的信息有12列,分别是,id,select_type,table,partitions,type,possible_keys,key,key_len,ref,rows,filtered,Extra。 如图: 一,概要描述 id:所泽标识符 select_type:表示查询的类型 table:输出结果集...
rows::预估查询的数据量,越少越好 filtered:过滤器过滤的行数百分比。 extra:额外的信息,但却十分重要的信息,常见的有如下值: Using index:查询中使用了覆盖索引。 Using where:使用了where子句来过滤数据。 Using temporary:使用了临时表来存储结果集,常见于 GROUP BY 和 ORDER BY 查询,性能差。 Using filesort...
首先,这里的filtered表示通过查询条件获取的最终记录行数占通过type字段指明的搜索方式搜索出来的记录行数的百分比。 以上图的第一条语句为例,MySQL首先使用索引(这里的type是range)扫描表a,预计会得到174条记录,也就是rows列展示的记录数。接下来MySql会使用额外的查询条件对这174行记录做二次过滤,最终得到符合查询语...
在MySQL.5.7版本以前想要显示filtered需要使用explain extended命令。MySQL.5.7后,默认explain直接显示partitions和filtered的信息。 1.14 Extra 其他额外的信息。 (1)Using filesort 说明mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL 中无法利用索引完成的排序操作称为“文件排序”。
ALTERTABLE`user`ADDINDEX`idx_name`(`name`);EXPLAINSELECT*FROM`user`WHERE`name`='Alice'; 1. 2. 3. 执行上述查询后,filtered字段的值应该接近1,表示绝大部分数据都满足查询条件。这说明我们的查询已经充分利用了索引。 通过观察filtered字段的值,我们可以得出以下结论: ...
filtered 是一个百分比的值,表示符合条件的记录数的百分比。简单点说,这个字段表示存储引擎返回的数据在经过过滤后,剩下满足条件的记录数量的比例。在MySQL.5.7版本以前想要显示filtered需要使用explain extended命令。MySQL.5.7后,默认explain直接显示partitions和filtered的信息。2.12 Extra Extra是EXPLAIN输出中另外一...
filtered:过滤器过滤的行数百分比。 Extra:关于 MySQL 如何解析查询的额外信息,包括以下信息: Using index:表示查询中使用了覆盖索引。 Using where:表示 MySQL 使用了 WHERE 子句来过滤数据。 Using temporary:表示 MySQL 使用了临时表来存储结果集,通常是 GROUP BY 和 ORDER BY 操作的结果。
EXPLAIN SELECT * FROM s1 WHERE key1>'z' AND common_field='a'; 这里s1表预计扫描了398条记录,其中10%满足条件。 2. 连接查询的情况 对于单表查询来说,这个filtered列的值没什么意义,我们更关注在连接查询中驱动表对应的执行计划 记录的filtered值,它决定了被驱动表要执行的次数(即:rows*filtered) ...
filtered: 按表条件筛选的行百分比 Extra: 额外信息 下面说下具体每一列的表示的含义和对应sql. 测试使用mysql版本5.7, 使用的3个表结构如下 CREATE TABLE`demo`.`emp`(`emp_id`bigint(20)NOT NULL,`name`varchar(20)CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT'姓名',`empno`...