EXPLAIN SELECT * FROM t_user2;
EXPLAIN SELECT * FROM t_user2 WHERE user_name = 'r1'
CREATE INDEX index_username ON t_user2(user_name);
EXPLAIN SELECT * FROM t_user2 WHERE user_name = 'test';
EXPLAIN SELECT * FROM t_user2 WHERE user_name = CONCAT(user_name,'01'); 索引失效
EXPLAIN SELECT * FROM t_user2 WHERE user_name LIKE 'test';
EXPLAIN SELECT * FROM t_user2 WHERE user_id = 1;
EXPLAIN SELECT * FROM t_user2 WHERE user_id >1 AND user_id < 10;
EXPLAIN SELECT t1.user_id,t1.user_name,t2.`authority`
FROM t_user2 AS t1
LEFT JOIN t_authority AS t2 ON t1.`authority_id` = t2.id
WHERE t1.user_id = 1;
EXPLAIN SELECT authority FROM t_authority
WHERE id IN (SELECT authority_id FROM t_user2);
EXPLAIN SELECT * FROM t_user2 WHERE user_id = 1
UNION ALL
SELECT * FROM t_user2 WHERE user_id = 4;
select_type simple primary ,union
type all const, range, ref
key ref primary index_key
possible key 使用的主键,外键,或者索引字段名
mysql 使用哪些函数会导致索引失效
在MySQL中,使用某些函数会导致索引失效,常见的有以下几种情况:
1.不符合索引最左匹配,
2.对索引列使用了函数运算,使用concat 拼接字符串导致索引失效,这会导致索引失效。
3.使用了不等于(<>, !=
)或者范围查询(BETWEEN
, >
, <
, LIKE '%term'
)并且匹配列值的开始部分,这会使得索引在某些情况下不能被完全利用。
4.使用了不同的collation(排序规则),会导致MySQL无法使用索引进行比较。
5.使用了OR
,当OR
两边的条件中有一边不是索引字段时,可能会使索引失效。
6.使用了聚合函数,如MAX()
或MIN()
,如果索引列用于这些函数计算中,索引可能失效。
7.使用了JOIN
或者子查询,可能会使得MySQL优化器放弃使用某些索引。文章来源:https://www.toymoban.com/news/detail-843598.html
8.常见的索引失效原因比如不符合索引最左匹配, 文章来源地址https://www.toymoban.com/news/detail-843598.html
到了这里,关于mysql explain 字段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!