如何查看explain中的key_len判断究竟用了哪个索引
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,如何查看explain中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。在一张表里有多个索引 , 我们w
千家信息网最后更新 2024年10月21日如何查看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安全错误
数据库的锁怎样保障安全
软件开发者能看到手机信息吗
win 10自带的媒体服务器
电脑网络安全概念股
软件开发企业有9%的税率
肖战与网络安全家园
河北兆美网络技术
怎么看阿里云服务器有多大
简介网络安全防护技术
徐州市好推网络技术
安卓数据库怎么查询
技术支持工程师软件开发工程师
魔兽世界哪个服务器资源最好
新萌网络技术
数据库的两个印象
新华社对媒体数据库
组态王服务器不支持质量写入
和平精英体验服服务器维修中
数据库能用红黑树么
火影服务器注册人数已满怎么办
沈阳申鑫软件开发公司
传奇一个服务器最多开多少个区
华硕路由器不能映射服务器端口
柳州市软件开发实习生最低工资
浙江dell服务器采购
网络安全对社会的变革有哪些
Excle数据导入数据库
和平精英体验服服务器维修中
三级网络技术考纲有变化吗
全球数据库背调
无基础学软件开发去哪个学校好