查看explain中的key_len判断究竟用了哪个索引

查看explain中的key_len判断究竟使用了哪个索引?

在一张表里有多个索引 , 我们where字段里条件有多个索引的值 , 那么究竟使用的哪个呢?

推荐:《mysql视频教程》

我们可以使用explain来查看 , 其中的key_len字段可以看得出来

 

比如下面这条sql

explain select * from ent_calendar_diary where email='xxxx' and diary_id=1784; +----+-------------+--------------------+------------+-------+-------------------------+---------+---------+-------+------+----------+-------+| id | select_type | table              | partitions | type  | possible_keys           | key     | key_len | ref   | rows | filtered | Extra |+----+-------------+--------------------+------------+-------+-------------------------+---------+---------+-------+------+----------+-------+|  1 | SIMPLE      | ent_calendar_diary | NULL       | const | PRIMARY,idx_email_stime | PRIMARY | 4       | const |    1 |   100.00 | NULL  |+----+-------------+--------------------+------------+-------+-------------------------+---------+---------+-------+------+----------+-------+

 

 

possible_keys里面有两个索引字段 , 但是看key_len  是4个字节 

纳米搜索 纳米搜索

纳米搜索:360推出的新一代AI搜索引擎

纳米搜索 30 查看详情 纳米搜索

1ed1d228bb215f4af3b35d0543c7cc3.png

备注,key_len 只指示了WHERE中用于条件过滤时被选中的索引列,是不包含 ORDER BY/GROUP BY 

int类型并且not null 是4个字节 , 因此上面的sql是使用的主键索引

 

explain select * from ent_calendar_diary where email='xxxx';+----+-------------+--------------------+------------+------+-----------------+-----------------+---------+-------+------+----------+-------+| id | select_type | table              | partitions | type | possible_keys   | key             | key_len | ref   | rows | filtered | Extra |+----+-------------+--------------------+------------+------+-----------------+-----------------+---------+-------+------+----------+-------+|  1 | SIMPLE      | ent_calendar_diary | NULL       | ref  | idx_email_stime | idx_email_stime | 767     | const |  111 |   100.00 | NULL  |+----+-------------+--------------------+------------+------+-----------------+-----------------+---------+-------+------+----------+-------+

 

这个是767个字节 , varchar(255)  not null   255 * 3 +2正好符合 , 因此是使用的email那个普通索引

 

CREATE TABLE `ent_calendar_diary` (`diary_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`email` varchar(255) NOT NULL,`title` varchar(100) NOT NULL,`summary` varchar(500) NOT NULL DEFAULT '',`stime` bigint(11) NOT NULL DEFAULT '0',`ctime` int(10) unsigned NOT NULL DEFAULT '0',PRIMARY KEY (`diary_id`),KEY `idx_email_stime` (`email`,`stime`)) ENGINE=InnoDB AUTO_INCREMENT=1809 DEFAULT CHARSET=utf8

以上就是查看explain中的key_len判断究竟用了哪个索引的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/364938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 04:47:09
下一篇 2025年11月6日 04:48:16

相关推荐

  • sql中explain的作用是什么 解读explain分析SQL性能的关键指标

    explain语句用于分析sql查询的执行计划,帮助识别性能瓶颈并进行优化。1.它揭示数据库如何处理查询请求,显示执行顺序;2.判断是否使用索引及具体使用哪个索引;3.评估扫描行数以减少数据访问量;4.识别全表扫描、文件排序等潜在性能问题。通过添加索引、优化查询结构、避免全表扫描、改进排序和减少数据…

    2025年12月3日 数据库
    000
  • mysql的explain有什么属性

    1、table 要查询的表 2、type 索引查询类型,从最好到最差依次是:system>const>eq_ref>ref>range>index>ALL。一般来说,保证查询至少达到range级别,最好能达到ref。 3、possible_keys 显示可能应用到…

    数据库 2025年12月2日
    000
  • mysql explain中key_len的含义以及计算方法是什么

    前言 在mysql中执行explain的结果中有一列为key_len,那么key_len的含义是什么呢? key_len:表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要。 计算key_len注意事项: 索引字段的附加信息: 可以分…

    数据库 2025年12月2日
    000
  • 在MySQL中的explain中的using where和using index

    本篇文章的主要内容是关于在%ign%ignore_a_1%re_a_1%数据库explain中的using where和using index的使用,感兴趣的朋友可以了解一下。 1. 查看表中的所有索引 show index from modify_passwd_log;  有两个 一个是id的主键…

    2025年12月2日 数据库
    000
  • Mysql数据库性能优化神器——explain关键字

    Explain工具介绍 使用explain关键字可以模拟优化器执行sql语句,分析查询语句或是结构的性能瓶颈。在select语句之前增加explaion关键字,mysql会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行sql。 Explaion分析示例 — actor建表语句:CR…

    2025年12月2日 数据库
    000
  • sql中explain作用 EXPLAIN执行计划的6个关键指标解读

    explain语句用于分析sql查询性能,通过type列判断索引使用情况,possible_keys和key列选择合适索引,extra列识别优化点。1. type列显示查找方式,system最优,all最差,应尽量达到ref或更高;2. possible_keys列出可用索引,key显示实际使用索引…

    2025年12月2日 数据库
    000
  • MySQL 执行计划解读

    1. explain extended select ….. 将执行计划反编译成SELECT 语句,运行 show warnings 可得到被MYSQL优化器优化后的查询语句。 2. explain partitions select …. 用于分区表的EXPLAIN 3.执…

    数据库 2025年12月2日
    000
  • 如何在mysql中使用EXPLAIN分析查询_mysql EXPLAIN查询分析

    使用EXPLAIN可分析SELECT语句的执行计划,通过在查询前添加EXPLAIN关键字,查看MySQL如何执行查询,包括索引使用、扫描行数等信息。输出字段如type、key、rows和Extra能帮助识别全表扫描、临时表或文件排序等问题,进而优化索引和查询结构。建议结合EXPLAIN结果检查是否命…

    2025年12月2日 数据库
    000
  • 关于mysql explain中key_len的计算方法讲解

    mysql的explain命令可以分析sql的性能,其中有一项是key_len(索引的长度)的统计。本文将分析mysql explain中key_len的计算方法。  1.创建测试表及数据 CREATE TABLE `member` ( `id` int(10) unsigned NOT NULL …

    2025年11月28日
    000
  • mysql explain的作用是什么?

    mysql explain的作用是模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理用户的SQL语句,提高数据检索效率,降低数据库的IO成本。 mysql explain的作用是: 模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的…

    2025年11月28日 数据库
    000
  • MySQL中explain用法和结果分析(详解)

    1. EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。➤  通过EXPLAIN,我们可以分析出以下结果: 表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用…

    2025年11月28日 数据库
    100
  • mysql explain的bug

    最近在做hadoop集群的容量数据,主要依据zabbix的监控数据,因为要计算impala的内存使用情况,就使用了下面的sqlselecta.host,avg(b.value)from(selecta.host,b. 最近在做hadoop集群的容量数据,主要依据zabbix的监控数据,因为要计算im…

    2025年11月27日
    000
  • Mysql中explain作用详解

    本文主要介绍了mysql中explain的相关内容,涉及索引的部分知识,具有一定参考价值,需要的朋友可以了解下,希望能帮助到大家。 一、MYSQL的索引 索引(Index):帮助Mysql高效获取数据的一种数据结构。用于提高查找效率,可以比作字典。可以简单理解为排好序的快速查找的数据结构。 索引的作…

    2025年11月26日
    000
  • 详解MySQL 索引+explain

    mysql视频教程栏目今天着重介绍索引+explain,为需要面试的准备。 免费推荐:mysql视频教程 一、索引的介绍 在mysql中,索引就是数据结构,已经在文件中按照索引进行排序好的结构.使用索引可以加快我们的查询速度,但是对我们的数据增删改效率会降低.因为一个网站大部分都是查询,我们主要优化…

    2025年11月26日 数据库
    100
  • MySQL中执行计划解读 EXPLAIN分析查询性能的方法

    在mysql中,使用explain分析查询执行计划是优化性能的重要手段。首先,要查看type字段是否为全表扫描(all),应尽量避免;其次,检查key字段是否命中正确的索引,若possible_keys有值但key为空则未使用索引;再看rows数值越小越好;最后关注extra字段,出现using f…

    2025年11月25日 数据库
    000
  • mysql中explain用法详解

    EXPLAIN用于SELECT语句中的每个表返回一行信息。表以它们在处理查询过程中将被MySQL读入的顺序被列出 对mysql explain讲的比较清楚的 在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快。如果由于不恰当使用索引而引起一些…

    数据库 2025年11月8日
    000
  • MySQL调优三步曲(慢查询、explain profile)

    mysql profile explain slow_query_log分析优化查询 在做性能测试中经常会遇到一些sql的问题,其实做性能测试这几年遇到问题最多还是数据库这块,要么就是IO高要么就是cpu高,所以对数据的优化在性能测试过程中占据着很重要的地方,下面我就介绍一些msyql性能 mysq…

    数据库 2025年11月8日
    500
  • MySQL性能分析及explain的使用说明

    本文我们主要介绍了MySQL性能分析以及explain的使用,包括:组合索引、慢查询分析、MYISAM和INNODB的锁定、MYSQL的事务配置项等,希望能够对您有所帮助。 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出…

    数据库 2025年11月7日
    300
  • MySQL 性能优化–Explain 使用介绍

    简介 mysql 提供了一个 explain 命令, 它可以对 select 语句进行分析, 并输出 select 执行的详细信息, 以供开发人员针对性优化.explain 命令用法十分简单, 在 select 语句前加上 explain 就可以了, 例如: EXPLAIN SELECT * fro…

    2025年11月7日
    100
  • MySQL中explain的使用以及性能分析

    mysql 提供了一个 explain 命令, 它可以对 select 语句进行分析, 并输出 select 执行的详细信息, 以供开发人员针对性优化.explain 命令用法十分简单,mysql性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一…

    2025年11月6日
    100

发表回复

登录后才能评论
关注微信