如何查看explain中的key_len判断究竟用了哪个索引
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,如何查看explain中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。在一张表里有多个索引 , 我们w
千家信息网最后更新 2025年11月07日如何查看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安全错误
数据库的锁怎样保障安全
护苗.网络安全课堂六
国家网络安全宣传周宣传图片
软件开发 多劳多得
网络安全十强厂商 360
广东标准网络技术服务代理商
网络安全文化理念有哪些
浙江大型软件开发技巧
张店工具软件开发定制
基于网络技术的现代物流管理
电脑网络安全管理办事流程
长宁区管理软件开发信息中心
互联网大会周鸿祎科技报国
代查数据库
苹果说连接到服务器出现问题
高速公路网络安全工作总结
崇明区网络软件开发信息中心
tsc342如何编辑数据库
医院数据库原理
ios设计 软件开发
arcgis公交数据库
未转变者服务器安全去
软件开发公司的市场营销策略
dellr630服务器安装
如何加强小学生网络安全
5g网络技术什么时候出
连接数据库提示少驱动
宁波青少年软件开发培训机构
安徽型材套料软件开发商
上海福加互联网科技
xp打开ftp服务器