如何查看explain中的key_len判断究竟用了哪个索引
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何查看explain中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。在一张表里有多个索引 , 我们w
千家信息网最后更新 2026年10月31日如何查看explain中的key_len判断究竟用了哪个索引
如何查看explain中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
在一张表里有多个索引 , 我们where字段里条件有多个索引的值 , 那么究竟使用的哪个呢?
我们可以使用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个字节
备注,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判断究竟用了哪个索引就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。
索引
字段
字节
内容
多个
条件
普通
学以致用
两个
价值
准确性
办法
备注
指示
文章
更多
看吧
类型
表里
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司华为
互联网医疗科技
深圳互联网络科技有限公司
米客互联网科技
银川新华互联网科技学校地址
互联网汽车科技小镇
科技与互联网的利与弊
青岛中康互联网医疗科技有限公司
互联网系的金融科技公司
千方科技属于互联网企业吗
注册互联网科技公司经营范围大全
未来五年的互联网科技
民营互联网公司国防科技
西安小鹰速贷互联网科技有限公司
翼展科技 首家互联网医院
富国互联网金融科技混合基金
宇信科技在杭州互联网排第几
神州科技互联网有限公司
长沙渺峰互联网科技有限公司
好易买互联网科技
蓝思科技飞鸽互联网
广州宏创互联网科技
顺玮阁互联网科技
互联网前沿科技
互联网科技咨询
深圳国际航运科技和互联网
南山科技园互联网公司有哪些
智腾互联网科技有限公司
互联网公司黑科技创始人
工业互联网科技成果转化