이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 11.5. 여러 윈 토토 결합버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

11.5. 여러 젠 토토 결합

단일 인덱스 스캔은 다음을 사용하는 쿼리 절만 사용할 수 있습니다. 해당 연산자 클래스의 연산자가 있는 인덱스의 열이 조인됩니다. 와 함께그리고. 예를 들어, 에 대한 젠 토토가 주어지면(a, b)다음과 같은 쿼리 조건a = 5 AND b = 6인 경우색인을 사용할 수 있지만 다음과 같은 쿼리a = 5 또는 b = 6인 경우할 수 없습니다 젠 토토를 직접 사용하세요.

다행히도,PostgreSQL이 있습니다 여러 젠 토토를 결합하는 기능(다중 젠 토토 사용 포함) 동일한 색인)을 사용하여 단일로 구현할 수 없는 경우를 처리합니다. 젠 토토 스캔. 시스템이 형성될 수 있습니다그리고그리고또는여러 인덱스 스캔에 걸친 조건. 예를 들어, 다음과 같은 쿼리는어디에서 x = 42 또는 x = 47 또는 x = 53 또는 x = 994개로 분리될 수 있습니다. 젠 토토 스캔x, 각 스캔은 다음을 사용합니다. 쿼리 절 중 하나입니다. 그런 다음 이러한 스캔 결과는 OR로 연결됩니다. 함께 결과물을 만들어 갑니다. 또 다른 예는 다음과 같습니다. 별도의 색인x그리고y, 다음과 같은 쿼리의 가능한 구현 중 하나x = 5 AND y = 6인 경우각 색인을 사용하는 것입니다 적절한 쿼리 절을 사용하고 젠 토토를 AND로 함께 사용 결과 행을 식별하는 결과입니다.

여러 색인을 결합하기 위해 시스템은 필요한 각 색인을 스캔합니다. 그리고 준비한다비트맵기억에 해당 인덱스와 일치하는 것으로 보고된 테이블 행의 위치 조건. 그런 다음 비트맵은 필요에 따라 AND 및 OR로 함께 연결됩니다. 쿼리로. 마지막으로 실제 테이블 행을 방문하고 돌아왔다. 테이블 행은 물리적인 순서대로 방문됩니다. 이것이 비트맵이 배치되는 방식입니다. 이는 모든 주문이 원래 인덱스가 손실되므로 별도의 정렬 단계가 수행됩니다. 쿼리에 다음이 있는 경우 필요합니다.주문 기준절. 이러한 이유와 추가 젠 토토 스캔이 발생할 때마다 시간이 더 추가되면 플래너는 때때로 간단한 방법을 사용하도록 선택합니다. 추가 젠 토토를 사용할 수 있더라도 젠 토토 스캔을 수행할 수 있습니다. 도 사용되었습니다.

가장 단순한 응용프로그램을 제외한 모든 응용프로그램에는 다양한 유용할 수 있는 인덱스의 조합과 데이터베이스 개발자는 제공할 인덱스를 결정하기 위해 균형을 맞춰야 합니다. 때로는 다중 열 인덱스가 가장 좋지만 때로는 더 좋습니다. 별도의 인덱스를 생성하고 인덱스 조합에 의존 특징. 예를 들어 워크로드에 쿼리가 혼합되어 있는 경우 때로는 열만 포함하는 경우도 있음x, 때로는 열만y, 때로는 두 열 모두에 두 개의 별도 젠 토토를 생성하도록 선택할 수 있습니다.x그리고y, 의지하다 두 열을 모두 사용하는 쿼리를 처리하기 위해 인덱스 조합에 대해 설명합니다. 다음에서 다중 열 인덱스를 생성할 수도 있습니다.(x, y). 이 젠 토토는 일반적으로 더 효율적입니다. 두 열을 모두 포함하는 쿼리의 경우 젠 토토 조합보다 에서 논의됨PostgreSQL : 문서 : 9.3 : 멀티 컬럼 메이저 토토 사이트, 다음과 관련된 쿼리에는 거의 쓸모가 없습니다.y, 따라서 유일한 색인이 되어서는 안 됩니다. 조합 다중 열 젠 토토 및 별도의 젠 토토y합리적으로 잘 작동할 것입니다. 관련된 쿼리의 경우 만x, 다중 열 인덱스는 다음과 같을 수 있습니다. 사용되지만 인덱스보다 더 크고 따라서 느립니다.x혼자. 마지막 대안은 다음을 만드는 것입니다. 세 가지 인덱스가 모두 포함되어 있지만 이는 다음과 같은 경우에만 합리적일 수 있습니다. 테이블은 업데이트되는 것보다 훨씬 더 자주 검색되며 세 가지 모두 쿼리 유형이 일반적입니다. 쿼리 유형 중 하나가 많은 경우 다른 것보다 덜 일반적이므로 아마도 만들기에 만족할 것입니다. 일반적인 유형과 가장 잘 일치하는 두 개의 인덱스만 있으면 됩니다.