낮은 카디널리티 컬럼에 적합

값마다 비트맵을 만들고, 조건은 비트 연산으로 바로 겹칩니다.

비트맵 인덱스는 각 값이 어느 행에 있는지를 같은 행 축 위에 0/1로 저장합니다. 그래서 조건이 여러 개여도 비트열끼리 AND하면 일치하는 행만 즉시 남습니다.

예시 질의
부서='IT' AND 성별='F'
공통 행 축 모든 비트맵은 같은 행 번호 기준으로 정렬됩니다.
행 번호
1
2
3
4
5
6
7
8
9
10
값별 저장

부서 컬럼은 값마다 별도 비트열을 가집니다.

1은 해당 행이 그 값을 가진다는 뜻이고, 0은 아니라는 뜻입니다.

IT
1
0
1
1
0
0
1
0
0
1
HR
0
1
0
0
1
0
0
0
1
0
FIN
0
0
0
0
0
1
0
1
0
0
조건 결합

각 조건의 비트열을 겹치면 일치 행만 남습니다.

복합 조건은 행을 다시 읽기 전에 비트 수준에서 먼저 좁혀집니다.

IT
1
0
1
1
0
0
1
0
0
1
F
0
0
1
0
1
0
1
1
0
1
AND
0
0
1
0
0
0
1
0
0
1
결과 해석
1이 남은 위치 = 3, 7, 10번 행
낮은 카디널리티 컬럼에서는 이런 비트 연산이 매우 작고 빨라서, 복합 조건 필터링에 특히 유리합니다.