捞一个mysql八股
在联合索引 (name, age) 上执行 name LIKE 'c%' AND age = 10,索引会如何使用?
全部评论
我觉得会在b+树上根据name去查找的第一个字符是c的范围,然后遍历下面的所有索引(不确定,等佬指正
如果是5.6版本前,MySQL不支持ICP索引下推,这个会先过滤出name前缀为c的所有记录,然后回表得到完整行记录,再从Server层过滤age=10;如果支持ICP,那么存储引擎层会通过联合索引在过滤name的同时过滤age=10的数据再回表扫描
相关推荐