찾다

 >  Q&A  >  본문

Mysql 组合索引最左原则的疑惑

如果test表有一个组合索引(a,b),执行如下两条语句。
explain select * from test where a=1 and b=1;
explain select * from test where b=1 and a=1;
执行结果显示这两条语句都用索引。根据最左原则,只有第一条使用索引,第二条不使用索引。不明白为什么,求解惑

巴扎黑巴扎黑2785일 전664

모든 응답(1)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-17 16:18:54

    질문자가 나열한 상황에서 mysql은 where 절의 조건 순서를 최적화하여 쿼리가 인덱스 순서를 따르도록 합니다.

    좀 더 구체적으로 말하면 위의 SQL은 교차 쿼리(and 모두)이며, Index Merge intersection algorithm 알고리즘은 mysql에서 조건절의 순서를 조정하는 데 사용됩니다. 자세한 설명은 공식 문서를 참조하세요.

    회신하다
    0
  • 취소회신하다