[sql] 비트맵 인덱스의 개념과 사용 방법
개념
비트맵 인덱스는 데이터베이스에서 사용하는 인덱스의 한 종류입니다. 일반적인 인덱스는 특정 열의 값을 정렬하여 검색 속도를 향상시키지만, 비트맵 인덱스는 열의 각 값에 대해 비트 패턴을 할당하여 검색을 수행합니다. 이는 특정 값이 테이블에 존재하는지 여부를 바로 확인할 수 있는 장점을 가지고 있습니다.
사용 방법
비트맵 인덱스는 주로 카디널리티가 낮은 열에 사용되며, 특정 값을 가지고 있는 행을 검색할 때 효과적입니다. 비트맵 인덱스를 생성하기 위해서는 다음과 같은 단계를 따를 수 있습니다.
- 테이블 생성 시에 비트맵 인덱스를 생성하고자 하는 열에 인덱스를 추가합니다.
CREATE TABLE my_table ( id INT, name VARCHAR(50), age INT, PRIMARY KEY (id), INDEX my_index (age) );
- 인덱스를 생성한 열에 대해 비트맵 인덱스를 생성합니다.
CREATE BITMAP INDEX my_index ON my_table(age);
- 비트맵 인덱스를 사용하여 원하는 결과를 검색합니다.
SELECT * FROM my_table WHERE age = 30;
장점
- 비트맵 인덱스는 카디널리티가 낮은 열에 효과적입니다. 이는 열을 구성하는 값의 종류가 적을 때 유용하게 사용될 수 있다는 것을 의미합니다.
- 특정 값을 가지고 있는 행을 바로 확인할 수 있기 때문에 검색 속도가 빠릅니다.
단점
- 비트맵 인덱스는 메모리를 많이 요구하는 특징을 가지고 있습니다. 비트맵 인덱스의 크기는 열의 값 종류의 개수에 따라 결정되기 때문에, 열에 대한 중복된 값이 많을 경우에는 비트맵 인덱스가 크기가 커질 수 있습니다.
- 데이터 수정 작업이 빈번하게 발생하는 테이블에 대해서는 비트맵 인덱스의 사용이 권장되지 않을 수 있습니다.
결론
비트맵 인덱스는 카디널리티가 낮은 열에 대해 빠른 검색을 제공하는 인덱스 종류입니다. 주로 특정 값을 가지고 있는 행을 검색할 때 사용되며, 메모리 요구량과 데이터 수정 작업에 대한 고려가 필요합니다.