【833、最左前缀原则知道吗】

78 阅读1分钟

当使用多列索引时,最左前缀原则在 MySQL 查询中的作用可以通过以下示例更清楚地说明:

假设有一个表 students,包含以下列:first_namelast_nameage。我们创建了一个多列索引 (first_name, last_name, age)

  1. 可以充分利用索引的查询:

    • 查询1:

      SELECT * FROM students WHERE first_name = 'John' AND last_name = 'Doe' AND age = 25;
      
    • 查询2:

      SELECT * FROM students WHERE first_name = 'Alice' AND last_name = 'Smith';
      
  2. 无法充分利用索引的查询:

    • 查询3:

      SELECT * FROM students WHERE age = 20;
      

虽然查询3中的年龄列在索引中,但它并不是索引的最左前缀,因此无法充分利用这个多列索引。对于这种情况,数据库可能会选择执行全表扫描,而不是使用索引来加速查询。

最左前缀原则在优化联合索引的查询效率时非常重要,它强调了在查询中尽可能使用索引的左边连续列,以保证索引的最大效用。