捞一个mysql八股
在联合索引 (name, age) 上执行 name LIKE 'c%' AND age = 10,索引会如何使用?
全部评论
如果是5.6版本前,MySQL不支持ICP索引下推,这个会先过滤出name前缀为c的所有记录,然后回表得到完整行记录,再从Server层过滤age=10;如果支持ICP,那么存储引擎层会通过联合索引在过滤name的同时过滤age=10的数据再回表扫描
我觉得会在b+树上根据name去查找的第一个字符是c的范围,然后遍历下面的所有索引(不确定,等佬指正
EXPLAIN看下呗
之前一直以为联合索引是Union那个联合查找,后来才知道这个才是?😋
相关推荐
11-07 23:16
宁夏大学 Java 点赞 评论 收藏
分享