MySQL 最左前缀,一篇讲明白,面试实战都能用

MySQL 索引面试必问,实战也常用,最左前缀法则很多人一知半解,今天用最简单的话讲透,看完就会用。

一、什么是最左前缀

联合索引(a,b,c),必须从最左边的字段开始匹配,中间不能断,才能命中索引。

比如索引:idx_date_area_amount(date, area, amount)

命中索引的情况

  • where date = ?
  • where date = ? and area = ?
  • where date = ? and area = ? and amount = ?

不命中 / 部分命中

  • where area = ?(缺最左 date)
  • where date = ? and amount = ?(中间断了 area)

二、建索引原则

  1. 高频查询字段放最前面
  2. 等值查询放前面,范围查询放后面
  3. 联合索引字段不要太多,3 个以内最合适

三、实战示例

-- 建联合索引(高频字段在前) CREATE INDEX idx_date_area ON t_order(date, area); -- 命中索引 SELECT * FROM t_order WHERE date = '2026-03-19' AND area = '华东'; -- 不命中索引 SELECT * FROM t_order WHERE area = '华东';

四、避坑

  • 不要建无用索引,拖慢写入
  • 不要把低基数字段(性别、状态)放前面
  • 查询时严格遵循最左匹配

最左前缀是 MySQL 索引最基础的知识点,面试能说清,实战能用对,索引效率直接拉满。