mysql为什么大于后面字段不走索引,大于等于后面就会走?这样的话大于等于是不是也算作一种优化手段,
比如原来索引idx_id_name_age这种索引,
where id >5 and name = 'zhang' and age = 15; 只走id 索引列
而改成 where id >= 6 and name = 'zhang' and age = 15; 是不是三个字段都可以走索引了
mysql为什么大于后面字段不走索引,大于等于后面就会走?这样的话大于等于是不是也算作一种优化手段,
比如原来索引idx_id_name_age这种索引,
where id >5 and name = 'zhang' and age = 15; 只走id 索引列
而改成 where id >= 6 and name = 'zhang' and age = 15; 是不是三个字段都可以走索引了
很简答,第一个sql索引只走到了name,
第二个索引走到了name,age
所以key_len 可以看到第一个22,第二个26.
至于为什么这样,是因为MySQL索引的匹配原则是在遇到第一个非=好判断时就停止往后匹配。
这里26是因为在等于2的时候那条记录会用到索引匹配,后边其他的仍旧是22,但是肯定是取两者最大值。