mysql的explain怎么看_[MySQL] 利用explain查看sql语句中使用的哪个索引

字段类型是:

`enterpriseId` int(10) unsigned DEFAULT NULL,

`email` char(255) NOT NULL DEFAULT '',

表的索引是:

UNIQUE KEY `emailent` (`email`,`enterpriseId`),

KEY `edf` (`enterpriseId`,`departId`,`flag`),

有这么两条sql语句,分别表现是:

@H_403_10@explain select email from email where enterpriseId=23684 and (email like 'aaa%');+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+

| 1 | SIMPLE | email | ref | emailent,edf | edf | 5 | const | 6 | Using where |

看到key_len的长度是5,可以知道使用的是edf这个索引,因为edf索引中的enterpriseId是int类型4个字节,默认null 加1个字节,总共5个字节

也就是先使用enterpriseId查到索引,在索引中使用where过滤数据

@H_403_10@explain aaas%);+----+-------------+-------+-------+---------------+----------+---------+------+------+--------------------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-------+-------+---------------+----------+---------+------+------+--------------------------+

| 1 | SIMPLE | email | range | emailent,edf | emailent | 770 | NULL | 2 | Using where; Using index |

+----+-------------+-------+-------+---------------+----------+---------+------+------+--------------------------+

在like的时候比上面多了一个字符,这个时候的索引情况是key_len是770,可以知道使用的是emailent这个索引,因为这个的索引长度是

255*3+5=770 varchar是255个字符,utf8下是*3,加上int 5个字节

like两边都有%的情况,只会使用第一个条件的edf索引

@H_403_10@MysqL> explain select * %shihanasas%ref | edf | edf | where |

+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值