안녕하세요.
A,B,C,D열을 설정할려고할때
A,C
A,B,C
A,B,C,D
이렇게 만드는게 의미가 있나요 아니면 A,B,C,D만 있으면 비슷한 효율을 낼수 있나요?
답변부탁드립니다.
Comment 3
-
이리
2018.04.13 13:43
-
뽀구
2018.04.13 15:36
답변감사합니다. 결국 ABCD를 사용할일이 있어서 A,B,C,D를 만들어 놓으면 그이하 A,C 나 A,B,C는 만들필요가 없다는거네요..
근데 인덱스 검색할때 where 절에 A,B 순서가 아니라 B,C 순서로 검색해도 검색 시간이 거의 같았던기억이 나는데 이건 제가 잘못테스트 한거고 원래 인덱스검색할때는 인덱스가 생성된 순서대로 하는게 맞나요. 저는 시간이 동일하길래 SQL에서 알아서 맞게 순서 변경해서 검색해주는줄알았습니다.
-
이리
2018.04.13 16:00
시간으로 비교는 정확하지 않습니다.
실제 인덱스 사용 여부는 실행 계획을 확인해 보셔야 합니다.
그리고 위와같이 A, B, C, D 하나만 생성한다면 A, C로 들어왔을때 A조건은 인덱스를 타지만 C조건은 인덱스를 타지 않습니다.
필요하다면 A, C 를 별도로 생성해야 합니다.
A,C - A만 들어올 경우 A,C가 들어올경우
A,B,C - A만 들어올경우, A,B만 들어올경우, A,B,C가 들어올경우
A,B,C,D - A만 들어올경우, A,B만 들어올경우, A,B,C만 들어올경우, A,B,C,D가 들어올경우
위 경우의 인덱스 사용이 가능합니다.
인덱스 순서를 잘 보셔야 합니다.
또한 점조건일 경우와 선분조건일 경우의 차이도 고려하셔야 합니다.