database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8922 게시물 읽기
No. 8922
bitmap index scan 질문
작성자
facy(애송이)
작성일
2011-12-28 16:50
조회수
8,701

 한가지 궁금한 점이 생겨서 질문 올려요.

www.postgresql.org/abount/ 에 나와 있는 문구 입니다.

PostgreSQL supports compound, unique, partial, and functional indexes which can use any of its B-tree, R-tree, hash, or GiST storage methods.

이 부분을 보면 postgresql은 인덱스 생성시 B-tree, R-tree, hash, or GiST storage 4가지 메소드만 사용할 수 있다고 나와있습니다.

그런데 실행계획을 보면 Bitmap Index Scan이라고 나오는 경우가 있는데요

B-tree Index라면 Bitmap Index Scan은 나오지 않아야 할 것 같아서요.

B-tree Index와 Bitmap Index는 서로 다른 Index라고 생각하고 있거든요.

제가 Index에 대해서 잘못 알고 있는건가요?

이 글에 대한 댓글이 총 2건 있습니다.

비트맵 인덱스는 인덱스 파일이 있고, 그것을 참조하는 방식이 아니라, 

select 작업을 진행할 때 데이터베이스 엔진이 내부적으로 자료를 처리하는 방식입니다. 

일반적으로 where 절 다음에 조건이 여러개 일때, 

첫번째 조건에 대한 비트맵 구성하고, 두번째 조건 대한 비트맵을 구성하고, 두 비트맵의 and 연산을 하면 원하는 결과를 찾겠죠.

이런 방식이 더 빠를 것이다 이런 식으로 판단할 때, 쿼리 실행 계획에서는 비트맵 인덱스를 사용하겠다는 식으로 표현합니다. 

구체적인 이야기는  RDBMS 엔지니어링 관련 이론서를 참조하는 것이 더 좋지 않을까싶네요. 

대부분 논문형태로 되어있어 저는 봐도 모르겠더라구요. 수학 공식이 뭐 그리도 많은지.....

김상기(ioseph)님이 2011-12-28 18:02에 작성한 댓글입니다.

아하 그렇군요.

비트맵인덱스도 인덱스의 한 종류라고 생각을 하고 있었거든요.

실행계획에서 나오는 부분은 생성된 인덱스를 이용해서

어떻게 연산을 할건지가 나오는거네요.

제가 여지껏 잘못 생각하고 있었네요.

도움 감사합니다.

facy(애송이)님이 2011-12-29 10:56에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8925이건 어떻게 해결해야되나요 [1]
이기자
2012-01-09
8218
8924CLUSTER 질문 [1]
facy
2012-01-06
8038
89237.3버전 자료를 백업해서 8.4버전으로 안옮겨지는 이유는 왜일까요? [2]
송민재
2012-01-04
8093
8922bitmap index scan 질문 [2]
facy
2011-12-28
8701
8921psql \set 명령어
김상기
2011-12-28
8672
8920컬럼 타입 변환 관련 질문입니다. [1]
이종복
2011-12-27
7936
8919index를 이용한 정렬 [6]
facy
2011-12-26
11719
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다