필자는 "두 부분으로 구성된 단일 색인"에 대해 이야기 할 때 작성자가 복합 색인을 참조한다고 가정합니다. "복합 인덱스"라는 용어는 테이블의 여러 열에 대한 인덱스를 참조하는 훨씬 더 일반적인 방법입니다.
두 개의 열에 하나의 합성 색인이있는 경우 삽입 중에 유지해야하는 색인 구조가 하나만 있으므로 색인 유지 관리의 오버 헤드가 하나의 단일 열 색인 유지 관리 오버 헤드와 크게 다르지 않습니다.개별적으로 각각의 컬럼에 별도의 인덱스를 작성하는 경우, 다른 한편으로
CREATE TABLE t1 (
col1 NUMBER,
col2 NUMBER,
col3 NUMBER
);
CREATE INDEX t1_composite_idx
ON t1(col1, col2);
는, 오라클은
CREATE TABLE t1 (
col1 NUMBER,
col2 NUMBER,
col3 NUMBER
);
CREATE INDEX t1_idx1
ON t1(col1);
CREATE INDEX t1_idx2
ON t1(col2);
I를 필요 인덱스 유지 보수의 약 두 배 않는 두 개의 별도의 인덱스 구조를 유지해야 그러나 저자가 인용 한 "3 인자"에 대해서는 오히려 경솔 할 것이다. 그 특별한 어림짐작에 의해 포착되지 않는 많은 변수들이 있습니다. 인덱스를 추가하는 것은 삽입 작업에 잠재적으로 상당한 비용을 부과한다는 것을 기억하는 것이 유용하지만, 다른 인덱스를 만드는 것과의 균형을 고려할 때 부과하는 실제 비용을 측정하는 것이 훨씬 유용합니다.
더 많은 종류의 색인이 있습니까?
오라클의 마지막 질문은 오라클에 상당히 다른 유형의 색인이 있습니다 (특히 복합 색인을 다른 유형의 색인으로 계산하는 경우). 이 대답은 한정자없이 "색인"을 참조 할 때 사람들이 일반적으로 의미하는 b * 트리 색인만을 다루고 있습니다. 그러나 오라클은 여러 가지 유형의 인덱스 (b * 트리 인덱스, 비트 맵 인덱스, 텍스트 인덱스 등)를 지원합니다. LOB 인덱스를 생성합니다. 사용자 정의 확장 가능 인덱스를 지원합니다. 그리고 각 유형의 인덱스에는 종종 수십 가지 옵션이 있습니다. 예를 들어, 함수 기반 b * -tree 인덱스 또는 비트 맵 조인 인덱스를 만들거나, Oracle Text 인덱스에 대해 사용자 정의 렉서를 지정하거나, 사용자 정의 유형에 대해 고유 인덱스 구조를 정의 할 수 있습니다.