B- 트리와 비트 맵의 ​​차이점

Anonim

B-Tree 및 비트 맵

Oracle에서 사용되는 두 가지 인덱스 유형이 있습니다. 이것들은 B-Tree와 Bitmap입니다. 이러한 인덱스는 성능 튜닝에 사용되며, 실제로 레코드를 찾고이를 매우 빠르게 검색합니다. 인덱스 함수는 인덱스 된 컬럼에 나타나는 모든 값에 대한 항목을 작성합니다. B- 트리 색인은 OLTP 시스템에서 사용되는 유형으로 주로 기본적으로 구현됩니다. 반면 비트 맵은 압축 된 인덱스 형식으로 제공되며 대부분의 경우 데이터웨어 하우스에 사용됩니다.

비트 맵은 일반적으로 어떤 성능상의 이점과 스토리지 절약을 추구 할 수 있는지에 대한 인덱싱 방법이라고 할 수 있습니다. 앞서 언급 한 것처럼 데이터웨어 하우스 환경은 주로 데이터웨어 하우징 환경에서 사용됩니다. 그 이유는 데이터 업데이트가 빈번하지 않고 임시 쿼리가 환경에 더 많이 있기 때문입니다. 비트 맵을 구현할 때는 낮은 기본 데이터를 사용하는 것이 좋습니다. 비트 맵은 성별과 같은 옵션이 낮은 열 항목에 선호되는 선택이며 2 가지 값만 있고 선호됩니다. 창고의 정적 데이터는 Bitmap을 사용하여 우수하게 구현되는 데이터의 좋은 특성이기도합니다. 비트 맵의 ​​또 다른 특징은 각 비트가 테이블의 단일 행에있는 열 값으로 구현되는 비트 스트림입니다.

반면 B- 트리 색인은 매우 고유 한 값이 들어있는 열에서 작성된 색인입니다. B- 트리 색인은 각 항목이 검색 키 값과 주어진 행 및 값을 참조하는 포인터를 갖는 항목을 정렬합니다. 서버가 문제의 값과 관련된 일치하는 제약 조건을 찾은 경우 포인터를 배포하여 행을 가져옵니다.

두 가지의 차이점 중 하나는 B-Tree에서 중복성이 낮고 높은 상관성이있는 반면 Bitmap에서는 그 반대가 발생한다는 것입니다. 비트 맵은 복제 인스턴스가 높고 정확성이 낮습니다. 비트 맵 인덱스는 지정된 열의 카디널리티가 낮아서 수백만 개의 행을 갖는 테이블을 가지므로 B- 트리 인덱스보다 유리한 것으로 나타났습니다. 따라서 Bitmap의 인덱스는 B- 트리 인덱스와 비교하여 더 나은 성능을 제공합니다.

B-Trees는 작은 데이터 집합을 수집 할 때 매우 빠른 것처럼 보입니다. 대부분의 경우 데이터는 데이터베이스 크기의 10 %를 넘지 않아야합니다. 이 둘은 인덱스 값이 많은 고유 한 값이있을 때 함께 작동합니다. 또한 B-Tree에 고유하여 여러 인덱스를 병합하여 매우 효율적인 프로그램을 생성 할 수 있습니다. 반면, 비트 맵은 최대 효율을 위해 색인 값이 낮을 때 가장 잘 작동하는 경향이 있습니다. 서브 세트 데이터의 10 %를 초과하는 더 큰 데이터 서브 세트를 찾을 때 B- 트리가 불량합니다.Bitmap은 고유 한 값이 거의 없을 때 더 효과적이기 때문에 고품질의 결과를 제공하기 위해 이러한 과제를 해결합니다.

B-Tree를 사용하는 통화 중 테이블에 많은 인덱스가있는 경우 인덱싱 된 데이터를 삽입 할 때 또는 인덱싱 된 데이터를 삽입 및 업데이트해야하는 경우 작은 벌금이 부과 될 수 있으므로 문제가 발생할 수 있습니다. Bitmap에서는 문제가되는 크기와 상관없이 값을 삽입하고 업데이트하는 것이 매우 효율적이므로 문제가되지 않습니다.

요약

B-Tree와 Bitmap은 Oracle에서 사용되는 두 가지 유형의 인덱스입니다.

Bitmap은 인덱싱 방법으로 성능 이점과 저장 공간을 절약합니다.

B-Tree 인덱스는 매우 고유 한 값을 포함하는 열

B-Tree는 많은 고유 인덱스 값에서 가장 잘 작동합니다.

비트 맵은 여러 고유 인덱스 값에서 가장 잘 작동합니다.