2011-02-11 3 views

답변

4

매우 정적 인 낮은 카디널리티 값 (매우 자주 변경되지 않는 값의 수가 적음)이있는 테이블에서 비트 맵 인덱스를 사용해야합니다. 비트 맵을 고려하기 위해서는 카디널리티가 1 % 미만이어야하며, 0.1 % 미만이면 최상의 옵션 일 가능성이 높습니다. b- 트리에 비해 비트 맵 인덱스를 유지하는 데 높은 오버 헤드가 있으므로 거의 변경되지 않는 데이터에 가장 적합합니다.이 경우 적합성은 데이터 변경 및보고가 동시에 발생하지 않는 응용 프로그램에 의해 결정되므로 사용자는 여분의 노력을 신경 쓰지 마라.

간단한 예를 들면 다음과 같습니다. 성별, 직위, 부서, 나이 및 직원 번호를 인덱싱 한 경우 직원 테이블에서 성별 및 직책에 대해 비트 맵을 선택할 수 있지만 부서에는 가능하지만 나이가 아닐 수도 있고 종업원이 아닐 수도 있습니다 번호.

+0

일반적으로 비트 맵을 사용할시기를 결정할 때 특정 숫자를 사용하지 않아도되지만 동의합니다. 최악의 경우에도 중복 값이없는 경우에도 비트 맵 인덱스는 btree 인덱스만큼의 공간 만 사용하고 읽기 작업은 거의 수행합니다. 읽기 전용 데이터웨어 하우스가 있고 공간이 문제라면 비트 맵 인덱스 만 사용하는 것이 좋습니다. "높은 오버 헤드"는 얼마나 심각한가를 적절하게 설명하지 못할 수도 있습니다. 쓰기 성능이 비참 할 수 있다고 말하고 싶습니다. 하나의 테이블을 업데이트하면 전체 테이블을 잠글 수 있습니다. –