如何查看explain中的key_len判断究竟用了哪个索引
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,如何查看explain中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。在一张表里有多个索引 , 我们w
千家信息网最后更新 2025年01月20日如何查看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安全错误
数据库的锁怎样保障安全
两会提案网络安全
时间服务器管理规范
杭电数据库张红娟第6章
企业如何安全存储数据库
服务器安全性措施
埃尔登法环服务器断开
杭州聚米网络技术有限公司
抓取网页数据库
静态缓存服务器
购买一个服务器
编写一个简单的服务器接口
美讯网络技术
指针数据库
网络安全小作文三年级
网络安全包保管理方法
企业免费服务器
sps22数据库出现乱码
盐田服务器设备供应商哪家正规
网络安全对个人的危害
建数据库时时间
云服务器云计算机
校园网络安全设计方案
计算机9网络技术
数据库迁移项目
药店数据库功能图
滨州招商网络安全公司
磁盘管理虚拟磁盘服务器
软件开发与编程是什么专业
linux服务器身份识别灯
国家网络安全宣传周 黑板报