如题,使用Explain命令可以确定MySQL语句是否走索引,但是问题是,当你使用的是联合索引时,Explain的结果只能告诉你是否走了该联合索引,无法精确到单个字段是否走索引。
例如
EXPLAIN SELECT * FROM student WHERE student.gender="male" AND student.height>180;
很明显height字段是不走索引的,但是Explain结果里只能看到使用了联合索引。
所以,我想请问,这种情况,如何确定单个字段是否走了索引呢,谢谢!
可以通过
explain结果中的key_len
来大概判断走了哪几个字段的索引,比如tinyint占1个字节,int占4个字节,char(10)在utf8编码下占10x3=30字节,然后如果字段可为空,则需要再加1个字节官方文档说明如下