explain时可能出现possible_keys列,而key列显示NULL的情况,这种情况是因为表中数据不多,MySQL认为索引对此查询帮助不大,选择全表查询。 如果possible_keys列是NULL,则没有相关的索引。在这种情况下,可以通过检查where子句,是否可以创建一个适当的索引来提高查询效率。 6、key列 key列显示MySQL实际采用哪个索引来优化对...
NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。 五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用(该查询可以利用的索引,如果没有任何索引显示 null) 该列完全独...
另外,key_len只计算where条件用到的索引长度,而排序和分组就算用到了索引,也不会计算到 key_len中。 看组合索引的使用情况
分析 首先我们知道:possible_keys为可能使用的索引;key为实际使用的索引,按照逻辑讲第一个为null 那么第二个也应该为null才对。 原因 这种情况一般发生在覆盖索引条件下,possible_keys为null说明用不上索引的树形查找,但如果二 级索引包含了所有要查找的数据,二级索引往往比聚集索引小,所以mysql可能会选择顺序遍历这个...
possible_keys: 可能用到的索引 key: 实际用到的索引 key_len: 索引长度 ref: 与索引比较的列 rows: 估算的行数 filtered: 按表条件筛选的行百分比 Extra: 额外信息 下面说下具体每一列的表示的含义和对应 sql. 测试使用 mysql 版本5.7, 使用的3个表结构如下 ...
【possible_keys列】 这一列的结果表明查询可能使用到哪些索引。但有些时候也会出现出现possible_keys 列有结果,而 后面的key列显示 null 的情况,这是因为此时表中数据不多,优化器认为查询索引对查询帮助不大,所以没有走索引查询而是进行了全表扫描。
13-MySQL索引-Explain之possible keys和key介绍是MySQL索引优化解决方案,MySQL数据库高级视频教程,MySQL索引优化难点和面试题详解的第13集视频,该合集共计24集,视频收藏或关注UP主,及时了解更多相关视频内容。
③哪些索引可以使用。(对应possible_keys) ④哪些索引被实际使用。(对应key) ⑤表直接的引用。(对应ref) ⑥每张表有多少行被优化器查询。(对应rows) 2.explain包含的信息 explain使用:explain+sql语句,通过执行explain可以获得sql语句执行的相关信息。 下面对explain的表头字段含义进行解释。
1.possible-keys分析 possible-keys;显示可能应用在这张表上的索引,一个或者多个。查询设计到的字段上若存在索引,则该索引被列出,但是不一定被实际使用...
如果该索引没有出现在possible_keys列中,那么MySQL选用它是出于另外的原因,比如选择了一个覆盖索引。 possible_keys揭示了哪一个索引能有助于高效地行查找,key显示了优化采用哪一个索引可以最小化查询成本。 key_len列 用于处理查询的索引长度,如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定...