티스토리 뷰
인덱스의 구조에는 B- Tree, B+ Tree, Hash, Bitmap 등 다양한 구조가 있습니다. 이번 글에서는 Bitmap 구조에 대해서 알아보도록 하겠습니다.
비트맵 인덱스(Bitmap Index)
- 인덱스 칼럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법입니다.
- 비트맵 인덱스의 목적은 키(Key) 값을 포함하는 행의 주소를 제공하는 것입니다.
- B-Tree 인덱스와 달리 카디널리터 값이 낮은 경우(특정 데이터 집합의 유니크한 값의 개수가 적은 경우. 즉, 중복도가 높은 경우)에 사용하기 좋습니다.
- 비트 맵은 흔히 색상표를 예시로 많이 드는데, 아래와 같은 형태로 표현됩니다.
- 분포도가 나쁜 Column에 사용하기 적합하며 성능 향상의 효과를 얻을 수 있습니다.
- 데이터가 Bit로 구성되어 있어 효율적인 논리 연산이 가능하고 저장 공간이 작습니다.(공간 효율)
- 다중 조건을 만족하는 튜플 개수를 계산하는 작업에 적합합니다.(위에서 예시로 든 색상표 이외에도 성별(남/여), 업무 형태(자택/출퇴근)와 같은 두 개의 값만 갖는 작업에 효율적입니다.)
- 동일한 값이 반복되는 경우가 많아 압축 효율이 좋습니다.
정리
비트맵 인덱스는 OLAP(Online Analytical Processing : 온라인 분석 처리)에 사용되며, 대량의 데이터를 한꺼번에 입력한 뒤 분석 또는 통계 정보를 출력할 때 많이 사용합니다.
또한, 데이터 값의 종류가 적고 동일한 데이터가 많을 때 주로 사용합니다.
참고
https://velog.io/@gayeong39/%EB%B9%84%ED%8A%B8%EB%A7%B5-%EC%9D%B8%EB%8D%B1%EC%8A%A4BitMap-Index
'Database > 공통' 카테고리의 다른 글
[DB]MVCC(Multi-Version Concurrency Control), 동시성 제어란? (0) | 2024.10.14 |
---|---|
[DB]옵티마이저(Optimizer)란? (0) | 2024.09.30 |
[DB]Query 최적화 및 튜닝 기술 (1) | 2024.09.28 |
[DB]WITHIN GROUP 구문 (0) | 2024.09.27 |
[DB]집합 관련 연산자(UNION, INTERSECT, MINUS) (0) | 2024.09.19 |
최근에 올라온 글
- Total
- Today
- Yesterday