在这个查询中,由于email列可能包含NULL值,并且查询条件中既包含了等值比较也包含了NULL值的检查,因此EXPLAIN的输出中type列可能会显示为ref_or_null。 ref_or_null对查询性能的影响 ref_or_null通常意味着查询性能可能不是最优的,因为它不仅需要对索引列进行等值查找,还需要额外处理NULL值的情况。这可能会增加查询的...
select * from demo_table where key1 = 'abc' OR key1 is NULL; 当使用二级索引而不是全表扫描的方式执行该查询时,对应的扫描区间就是[NULL,NULL]和[‘abc’,‘abc’],此时这种类型的查询所使用的访问方法就称为ref_or_null。 4、range 有时候,我们的查询方法很复杂,比如下面这个sql select * from de...
SELECT * FROM ref_table,other_table WHERE ref_table.key_column_part1=other_table.column AND ref_table.key_column_part2=1; ref 表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值 fulltext 使用FULLTEXT 索引执行连接。 ref_or_null SELECT * FROM ref_table WHERE key_column IS NULL...
type显示的是访问类型,访问类型表示我是以何种方式去访问我们的数据访问的类型有很多,效率从最好到最坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL 一般情况下,得保证查询至少达到range级别,最好能达到ref。
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相同都是扫描表,但index只对索引树进行扫描,而ALL是是...
开发过程中对业务表中查询sql分析sql执行计划(尤其是业务流水表),主要是查看sql执行计划,对sql进行优化。 explain执行计划关键属性 select_type,possible_keys,key,rows 1. (1) select_type 访问类型 system>const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquer...
5、 ref_or_null该联接类型如同ref,但是添加了MySQL可以专门搜索包含NULL值的行。在解决子查询中经常使用该联接类型的优化。 上面这五种情况都是很理想的索引使用情况。 6、 index_merge该联接类型表示使用了索引合并优化方法。在这种情况下,key列包含了使用的索引的清单,key_len包含了使用的索引的最长的关键元素。
NULL!='chen' 这个测试结果为NULL,为假,所以id=3这一行就不会被查出来。 所以最终的结果就只有id=2这一行的数据被查出来了。 那如果要达到我们的目地怎么办? 3306>select * from t1 where name!='chen' or name is null; +---+---+ | id | name...
system> const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index >ALL 一般来说,得保证查询至少达到range级别,最好能达到ref。 possible_keys 指出MySQL能使用哪个索引在该表中找到行。如果是空的,没有相关的索引。这时要提高性能,可通过检验...
unique_subquery — 在子查询中使用 eq_ref; ref_or_null —对 null 进行索引的优化的 ref; fulltext — 使用全文索引; ref — 使用非唯一索引查找数据; eq_ref —在 join 查询中使用主键或唯一索引关联; const — 将一个主键放置到 where 后面作为条件查询, MySQL 优化器就能把这次查询优化转化为一个常量...