포스트그레SQL완전히 충돌 복구가 가능한 영구 디스크 내 해시 토토 핫 구현이 포함되어 있습니다. 잘 정의된 선형 순서가 없는 데이터 유형을 포함하여 모든 데이터 유형은 해시 토토 핫로 인덱싱될 수 있습니다. 해시 토토 핫는 인덱싱되는 데이터의 해시 값만 저장하므로 인덱싱되는 데이터 열의 크기에는 제한이 없습니다.
해시 색인은 단일 열 색인만 지원하며 고유성 검사를 허용하지 않습니다.
해시 인덱스는 다음만 지원합니다.=연산자이므로 범위 작업을 지정하는 WHERE 절은 해시 토토 핫를 활용할 수 없습니다.
각 해시 토토 핫 튜플은 실제 열 값이 아닌 4바이트 해시 값만 저장합니다. 결과적으로 UUID, URL 등과 같은 긴 데이터 항목을 인덱싱할 때 해시 토토 핫는 B-트리보다 훨씬 작을 수 있습니다. 또한 열 값이 없으면 모든 해시 토토 핫 스캔이 손실됩니다. 해시 토토 핫는 비트맵 토토 핫 스캔 및 역방향 스캔에 참여할 수 있습니다.
해시 토토 핫는 더 큰 테이블에서 동일성 스캔을 사용하는 SELECT 및 UPDATE가 많은 작업 부하에 가장 최적화되어 있습니다. B-트리 토토 핫에서 검색은 리프 페이지를 찾을 때까지 트리를 따라 내려가야 합니다. 수백만 개의 행이 있는 테이블에서 이러한 하강은 데이터에 대한 액세스 시간을 늘릴 수 있습니다. 해시 토토 핫의 리프 페이지에 해당하는 페이지를 버킷 페이지라고 합니다. 이와 대조적으로 해시 토토 핫를 사용하면 버킷 페이지에 직접 액세스할 수 있으므로 더 큰 테이블에서 토토 핫 액세스 시간이 줄어들 가능성이 있습니다. 이러한 '논리적 I/O' 감소는 shared_buffers/RAM보다 큰 토토 핫/데이터에서 더욱 두드러집니다.
해시 토토 핫는 해시 값의 고르지 못한 분포에 대처하도록 설계되었습니다. 해시 값이 고르게 분포되어 있으면 버킷 페이지에 대한 직접 액세스가 잘 작동합니다. 삽입으로 인해 버킷 페이지가 가득 차면 추가 오버플로 페이지가 해당 특정 버킷 페이지에 연결되어 해당 해시 값과 일치하는 토토 핫 튜플에 대한 저장소가 로컬로 확장됩니다. 쿼리 중에 해시 버킷을 스캔할 때 오버플로 페이지를 모두 스캔해야 합니다. 따라서 불균형 해시 토토 핫는 실제로 일부 데이터의 경우 필요한 블록 액세스 수 측면에서 B-트리보다 나쁠 수 있습니다.
오버플로 사례의 결과로 해시 토토 핫는 고유하고 거의 고유한 데이터 또는 해시 버킷당 행 수가 적은 데이터에 가장 적합하다고 말할 수 있습니다. 문제를 방지할 수 있는 한 가지 방법은 부분 토토 핫 조건을 사용하여 토토 핫에서 고유하지 않은 값을 제외하는 것이지만 이는 많은 경우에 적합하지 않을 수 있습니다.
B-트리와 마찬가지로 해시 토토 핫는 간단한 토토 핫 튜플 삭제를 수행합니다. 이는 삭제해도 안전한 것으로 알려진 토토 핫 튜플(항목 식별자의 LP_DEAD 비트가 이미 설정된 항목)을 삭제하는 지연된 유지 관리 작업입니다. 삽입 시 페이지에 사용 가능한 공간이 없다고 판단되면 데드 토토 핫 튜플을 제거하여 새 오버플로 페이지를 생성하지 않으려고 합니다. 해당 시점에 페이지가 고정되어 있으면 제거가 불가능합니다. VACUUM 중에도 데드 토토 핫 포인터 삭제가 발생합니다.
가능하다면 VACUUM은 토토 핫 튜플을 가능한 적은 수의 오버플로 페이지에 압축하여 오버플로 체인을 최소화하려고 시도합니다. 오버플로 페이지가 비어 있으면 오버플로 페이지를 다른 버킷에서 재사용하기 위해 재활용할 수 있지만 운영 체제에는 반환되지 않습니다. 현재 REINDEX로 재구축하는 것 외에는 해시 토토 핫를 축소할 수 있는 방법이 없습니다. 버킷 수를 줄일 수 있는 조항도 없습니다.
해시 토토 핫는 토토 핫된 행 수가 증가함에 따라 버킷 페이지 수를 늘릴 수 있습니다. 해시 키-버킷 번호 매핑은 토토 핫가 점진적으로 확장될 수 있도록 선택됩니다. 새 버킷이 토토 핫에 추가되면 정확히 하나의 기존 버킷을 "분할"해야 하며 업데이트된 키-버킷 번호 매핑에 따라 일부 튜플이 새 버킷으로 전송됩니다.
확장이 전경에서 발생하므로 사용자 삽입 실행 시간이 늘어날 수 있습니다. 따라서 행 수가 급격히 증가하는 테이블에는 해시 토토 핫가 적합하지 않을 수 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.