什么是最左前缀原则?
最左前缀原则指的是:MySQL使用联合索引时,必须从最左边的字段开始匹配,才能命中索引。
范围查询后的列还能用索引吗?
范围查询只能应用于最左前缀的最后一列。范围查询之后的列无法使用索引。
select * from table where a = 1 and b > 2 and c = 3;
-- 只能使用a和b,c无法使用索引
为什么不从最左开始查,就无法匹配呢。
因为联合索引在B+树中,是按照最左字段优先排序构建的,如果跳过最左字段,MySQL无法判断查找范围从哪里开始,自然也就无法使用索引。

浙公网安备 33010602011771号