복합키의 속성 순서가 중요하다

composite index로 pk를 걸 때 조회에 따라 컬럼 순서를 조정해야 한다. column_a + column_b + column_c 로 순서로 복합키를 걸었는데, column_a와 c로 where 절을 돌리면 인덱스가 타지 않는다.

select * from sth where column_a between A and B and column_b = C 에서 between 문보다 column_b = C 문이 범위를 좁힐 수 있으므로 column_a 와 column_b 를 복합 pk 를 만들 때 column_b 가 먼저 위치하는 것이 좋다.

여러개의 속성이 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 좋은 효율을 나타낼 수 있다. 앞쪽에 위치한 속성 값이 가급적 = 또는 최소한 범위가 들어와야 인덱스를 이용할 수 있는 것이다.

reference