안녕하세요.
데이터베이스 설계를 공부하던중 복합키를 사용하면 WHERE절을 이용하여 검색시에 복합키를 건 순서대로 적어줘야 인덱스를 탄다는 글을 볼 수 있었습니다. 링크
해당 글을보고 어떤 이유 때문에 순서를 반드시 지켜야 하는지를 알고 싶으나 짧은 지식으로 인해 해당 이유를 못찾고 있습니다.
현재 예상으로는 복합키로 걸면 클러스터드인덱스로 복합 인덱스가 생성되고, 그 복합인덱스가 순서가 반드시 지켜져야 하는 자료구조로 되어있지 않을까 싶습니다.
1. 제가 예상한 이유가 맞는지?
2. 틀리다면 어떤 이유에서 그러는 것인지?
3. 복합 인덱스의 자료구조는 어떻게 되어있는지? ( 키워드라도 알려주시면 감사하겠습니다..)
해당 질문들에 대한 정보 주시면 정말 감사하겠습니다!
인덱스 구조는 정렬된 구조이기 때문에 빠르게 자료를 찾을 수 있습니다.
예를 들면, 단어가 정렬되어 있는 사전에서 단어를 검색한다고 했을 때.
"가"로 시작하는 단어는 필요한 부분만 빠르게 찾을 수 있지만.(인덱스스캔)
중간에 "가"가 들어가는 단어를 찾으려면 사전 전체를 훑어봐야만 합니다.(풀스캔)
즉, 선두 컬럼 조건 없이는 인덱스 이용이 불가능 하다는 것이죠.
인덱스 구조는 B-Tree 형태로 되어 있습니다.
http://wiki.gurubee.net/pages/viewpage.action?pageId=29065492