顾名思义,这一列表明的是额外信息,这一列的取值对优化SQL非常有参考意义。常见的重要取值如下: 1)using index:所有被查询的字段都是索引列(称为覆盖索引),并且where条件是索引的前导列,出现这样的结果,是性能高的表现。 explainselect group_id,group_name from t_group; 2)using where:被查询的列未被索引覆...
type type 显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到 range 级别,最好能达到 ref。 possible_keys 显示查询使用...
mysql> CREATE INDEX s_gmt_offset_idx ON store (s_gmt_offset); Query OK, 0 rows affected (0.53 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> SELECT ... +---+---+---+ | promotions | total | CAST(promotions AS DECIMAL(15, 4)) / CAST(total AS DECIMAL(15, 4)) * 100 |...
從EXPLAIN 命令的傳回值是 XML 文件。 此 XML 文件會列出指定查詢之查詢計劃中的所有作業,每個作業都以 <dsql_operation> 標記括住。 傳回值為 nvarchar(max) 類型。傳回的查詢計劃描述循序的 SQL 陳述式。當查詢執行時,可能包含平行化的作業,因此部分顯示的循序陳述式可能會同時執行。
当然,这里说的index指的是SQL CREATE INDEX 语句 CREATE INDEX index_name ON table_name (column_name) 大多数情况下,index会被自动调用。 可以通过explain select XXX来查看语句中,index的使用情况。(explain只能看select) 最主要看的就是type这一列。
unique_subquery: 用于where中的in形式子查询,子查询返回不重复值唯一值 index_subquery: 用于in形式子查询使用到了辅助索引或者in常数列表,子查询可能返回重复值,可以使用索引将子查询去重。 range: 索引范围扫描,常见于使用>,<,isnull,between ,in ,like等运算符的查询中。
NULL>system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALLsystem>const>eq_ref>ref>range>index>ALL 一般至少要达到range级别,最好达到ref 。 const 唯一索引,非关联查询 eq_ref,ref eq_ref 跟 const 的区别是:两者都利用唯一索引,但前者是关联查...
sql查询 explain select * from p_student where id < 30000 1. 执行计划结果 id小于30000的数据在p0,p1,p2分区中 6.type type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > unique_subquery > index_subquery > range ...
使用not in()形式子查询或not exists运算符的连接查询,这种叫做反连接。即,一般连接查询是先查询内表,再查询外表,反连接就是先查询外表,再查询内表。 using filesort:排序时无法使用到索引时,就会出现这个。常见于order by和group by语句中 using index:查询时不需要回表查询,直接通过索引就可以获取查询的数据。
unique_subquery : 用于where中的in形式子查询,子查询返回不重复值唯一值 index_subquery : 用于in形式子查询使用到了辅助索引或者in常数列表,子查询可能返回重复值,可以使用索引将子查询去重。 range : 索引范围扫描,常见于使用>,<,isnull,between ,in ,like等运算符的查询中。