最左前缀原则

组合索引 (city, age) 不是「任意列都能用」,而是从最左列开始连续匹配。理解这条原则,才能用最少的索引覆盖最多的查询。

最左前缀原则要点

最左前缀原则示例

						-- 组合索引
						CREATE INDEX idx_city_age ON user (city, age);

						-- 走索引:命中最左列 city
						SELECT * FROM user WHERE city = '北京';

						-- 走索引:city + age 连续命中
						SELECT * FROM user WHERE city = '北京' AND age = 30;

						-- 不走索引:缺最左列 city,直接查 age
						SELECT * FROM user WHERE age = 30;
避坑提醒:把组合索引想成「电话区号 + 号码」:不先拨区号直接拨号码,交换机无从查起,索引同理。
最左前缀原则 · MySQL 索引 知识卡片
卡片 06 / 09 · MySQL 索引(1080×1440 速查卡片)

MySQL 索引知识点