소개

해시 인덱스는 B-Tree 만큰 범용적이지 않지만 고유의 특성과 용도를 지닌 인덱스 가운데 하나이다. 해시 인덱스는 동등 비교 검색에는 최적화 돼 있지만 범위를 검색한다던가 정렬된 결과를 가져오는 뮥적으로는 사용할 수 없다. 일반적인 DBMS 에서 해시 인덱스는 메모리 기반의 테이블에 주로 구현돼 있으며 디스크 기반의 대용량 테이블용으로는 거의 사용되지 않는다는 특징이 있다.

5.4.1 구조 및 득성

해시 인덱스의 큰장점은 실제 키값과는 관계없이 인덱스 크기가 작고 검색이 빠르다는 것이다.
해시 인덱스는 원래의 키값을 저장하는 것이 아니라 해시함수의 결과만을 저장하므로 키 칼럼이 아무리 길어도 실제 해시 인덱스에 저장되는 값은 4~8바이트 수준으로 상당히 줄어든다. 그래서 해시 인덱스는 B-Tree 인덱스보다는 상당히 크기가 작은편이다.

5.4.2 해시 인덱스의 가용성 및 효율성

해시 인덱스는 빠른 검색을 제공하지만 키값 자체가 변환되어 저장되기 때문에 범위를 검색하거나 원본값 기준으로 정렬할 수 없다.

  • 작은 범위 제한 조건으로 해시 인덱스를 사용하는 쿼리 : 동등비교 조건으로 값을 검색하는 경우 해시 인덱스의 빠른 장점을 그대로 이용할 수 있다.
  • 해시 인덱스를 전혀 사용하지 못하는 쿼리 : 크다 또는 작다 기반의 검색은 어떠한 방법으로도 해시 인덱스를 사용할 수 없다.