eq_ref: 对于每个来自于前面的表的行组合,从该表中读取一行,常用在一个索引是unique key或者primary key。 ref: 数据查询的时候如果命中的索引是二级索引不是唯一索引,测试查询速度也会很快,但是type是ref。另外如果是多字段的联合索引,那么根据最左匹配原则,从联合索引的最左侧开始连续多个列的字段进行等值比较也是...
一、explain的使用方法 explain select语句; 例如:explain select * from stuInfoA; 返回的结果如下图: 结果说明: id:是select 的标识符,表示select 语句的执行顺序;如果该select语句有嵌套查询,则explain会有多行结果返回,也就会有多个id,id的数字越大表示该select子句越先执行;如果数字相同,则按从上到下的顺序...
2.9 ref 显示索引的哪一列被使用了,常见的取值有:const, func,null,字段名。当使用常量等值查询,显示const,当关联查询时,会显示相应关联表的关联字段如果查询条件使用了表达式、函数,或者条件列发生内部隐式转换,可能显示为func其他情况null 2.10 rows rows 列表示 MySQL 认为它执行查询时可能需要读取的行...
EXPLAIN select * from person where name=’alex’; 4.5 ref_or_null该联接类型如同ref类似,结果包含空行. 上面这五种情况都是很理想的索引使用情况 4.6 type=range 索引范围扫描,常见于 ,>=,between,in等操作符。 EXPLAIN select * from person where id BETWEEN 1 and 5; 4.7 type=index 该联接类型与ALL...
ref (JSON名称: ref) ref列显示与key列中命名的索引进行比较以选择表中的行的哪些列或常量。 如果值是func,则使用的值是某个函数的结果。要查看哪个函数,请在EXPLAIN之后使用SHOW WARNINGS查看扩展的EXPLAIN输出。该函数实际上可能是一个运算符,例如一个算术运算符。
explain基础 对于每个SQL来说,当它被客户端发送到Mysql服务端之后,会经过Mysql的优化器部件的分析,主要包括一些特殊的处理、执行顺序的改变以确保最优的执行效率,最终生成对应的执行计划。所谓的执行计划,实际就是在存储引擎层面如何获取数据的,是通过索引获取数据还是进行全表扫描获取数据,获取到数据后需不需要回表,等等...
在MySQL中,EXPLAIN语句用于分析查询语句的执行计划,包括了查询语句将如何执行、使用了哪些索引、表的访问顺序等信息。其中,EXPLAIN语句的结果中会包含一个ref列,用于显示查询中使用的索引或表的连接条件。 ref列显示了所使用的索引或表的连接条件。当查询时使用了索引列,且查询条件中使用了等于(=)或IN操作符时,ref...
ref字段的用法 1、查看查询语句的执行计划: “`sql EXPLAIN SELECT * FROM table_name WHERE column_name = ‘value’; “` 这将返回一个表格,其中包含有关查询语句执行计划的详细信息,包括使用的索引类型(即ref字段)。 2、分析查询性能: 通过观察ref字段的值,我们可以判断查询语句是否使用了合适的索引,以及索引...
| 3 | DEPENDENT UNION | t3 | eq_ref | PRIMARY,idx_t3_id | PRIMARY | 4 | func | 1 | Using where; Using index | |NULL | UNION RESULT | <union2,3> | ALL | NULL | NULL | NULL | NULL | NULL | | +---+---+---+---+---+---+---+---+---+---+ (4).UNION ...
MySQL的Explain命令总结如下:基本功能:MySQL的Explain命令是优化SQL语句的重要工具,通过生成执行计划,帮助我们深入了解优化器如何优化SQL语句,包括连接转换、访问方式、索引选择等。输出列含义:table:指明当前执行计划涉及的表。ID:表示执行计划的顺序,对于复杂的查询,可能包含多个执行步骤,每个步骤都有...