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

58.2. 스포츠 토토 베트맨

이 섹션은 다음에 대한 개요를 제공합니다.스포츠 토토 베트맨(대규모 속성 저장소 기술).

포스트그레SQL고정 페이지를 사용합니다 크기(일반적으로 8kB)이며 튜플이 여러 개에 걸쳐 있는 것을 허용하지 않습니다. 페이지. 따라서 매우 큰 필드를 저장할 수 없습니다. 가치를 직접적으로 평가합니다. 이러한 한계를 극복하기 위해 큰 필드 값 여러 물리적 행으로 압축 및/또는 분할됩니다. 이 사용자에게 투명하게 발생하며 대부분의 경우에는 작은 영향만 미칩니다. 백엔드 코드의 이 기술은 애칭으로 알려져 있습니다.스포츠 토토 베트맨(또는"얇게 썬 빵 이후로 가장 좋은 것은").

특정 데이터 유형만 지원스포츠 토토 베트맨— 오버헤드를 부과할 필요가 없습니다. 큰 필드 값을 생성할 수 없는 데이터 유형에 대해 설명합니다. 지원하다스포츠 토토 베트맨, 데이터 유형에는 가변 길이(발레나) 표현, 저장된 값의 첫 번째 32비트 워드에는 다음이 포함됩니다. 값의 총 길이(바이트 단위)(자체 포함).스포츠 토토 베트맨제한하지 않습니다. 나머지 표현. a를 지원하는 모든 C 수준 함수스포츠 토토 베트맨-able 데이터 유형은 다음과 같아야 합니다. 취급에 주의하세요스포츠 토토 베트맨ed 입력 가치. (이것은 일반적으로 다음을 호출하여 수행됩니다.PG_DETOAST_DATUM어떤 일을 하기 전에 입력 값이지만 어떤 경우에는 더 효율적인 접근 방식이 있습니다. 가능합니다.)

스포츠 토토 베트맨다음의 두 비트를 빼앗습니다. varlena 길이 단어(빅 엔디안 시스템의 상위 비트, 리틀 엔디안 머신의 하위 비트), 이로 인해 a 값의 논리적 크기스포츠 토토 베트맨-가능 데이터 유형을 1GB(230- 1바이트). 두 비트가 모두 0이면 값은 일반 값입니다. 유엔-스포츠 토토 베트맨11565_12719

테이블의 열 중 하나가 다음과 같은 경우스포츠 토토 베트맨-가능, 테이블에는 연관된 항목이 있습니다스포츠 토토 베트맨12884_12929pg_class.reltoastrelid항목. 오프라인스포츠 토토 베트맨ed 값은 다음에 보관됩니다.스포츠 토토 베트맨테이블, 자세히 설명됨 아래.

사용된 압축 기술은 매우 간단하고 매우 빠릅니다. 압축 기술의 LZ 제품군에 속합니다. 참조src/backend/utils/adt/pg_lzcompress.c에 대한 세부사항.

아웃 오브 라인 값은 (사용된 경우 압축 후) 다음으로 나뉩니다. 최대 덩어리TOAST_MAX_CHUNK_SIZE바이트(기본적으로 이 값은 4개의 청크 행이 페이지에 맞으면 약 2000바이트가 됩니다). 각 청크는 다음과 같이 저장됩니다. 의 별도 행스포츠 토토 베트맨테이블을 소유한 테이블에 대한 것입니다. 매스포츠 토토 베트맨테이블에 열이 있습니다chunk_id(특정 항목을 식별하는 OID스포츠 토토 베트맨ed 값),chunk_seq(청크의 시퀀스 번호 해당 값 내에서) 및chunk_data( 청크의 실제 데이터). 에 대한 고유 인덱스chunk_id그리고chunk_seq빠른 값 검색을 제공합니다. 라인 아웃을 나타내는 포인터 데이텀스포츠 토토 베트맨14335_14386스포츠 토토 베트맨테이블에 특정 값의 모양 및 OID(해당chunk_id). 편의상 포인터 데이텀도 논리적 데이텀 크기(원래 압축되지 않은 데이터 길이) 저장 실제 저장된 크기(압축이 적용된 경우 다름) varlena 헤더 바이트를 허용하면 a의 전체 크기스포츠 토토 베트맨14792_14886

스포츠 토토 베트맨코드가 트리거되었습니다 테이블에 저장될 행 값이 다음보다 넓은 경우에만TOAST_TUPLE_THRESHOLD바이트(일반적으로 2 KB).스포츠 토토 베트맨코드는 행 값이 나올 때까지 필드 값을 줄 밖으로 압축 및/또는 이동합니다. 다음보다 짧습니다.TOAST_TUPLE_TARGET바이트 (일반적으로 2kB) 또는 더 이상 이득을 얻을 수 없습니다. 업데이트 중 작동 시 변경되지 않은 필드의 값은 일반적으로 있는 그대로 유지됩니다. 따라서 행을 벗어난 값이 있는 행의 업데이트는 발생하지 않습니다.스포츠 토토 베트맨다음 중 어느 것도 아닌 경우 비용 라인 밖의 값이 변경됩니다.

스포츠 토토 베트맨코드가 인식합니다 저장을 위한 네 가지 다른 전략스포츠 토토 베트맨-가능 열:

  • 일반압축 또는 압축을 방지합니다. 오프라인 저장; 또한 단일 바이트 사용을 비활성화합니다. varlena 유형의 헤더. 이것이 가능한 유일한 전략이다. 비의 열스포츠 토토 베트맨-가능 데이터 유형.

  • 확장됨압축과 압축을 모두 허용합니다. 오프라인 저장. 이것이 대부분의 기본값입니다.스포츠 토토 베트맨-가능 데이터 유형. 압축은 먼저 시도한 다음 행이 여전히 너무 남아 있으면 라인 외부 저장을 시도합니다. 크다.

  • 외부아웃오브라인 저장을 허용하지만 압축이 아닙니다. 의 사용외부만들겠습니다 넓은 부분 문자열 연산텍스트그리고바이테아열이 더 빨라집니다(페널티 있음). 증가된 저장 공간) 이러한 작업은 다음에 최적화되어 있기 때문입니다. 라인 외부 값 중 필요한 부분만 가져옵니다. 압축되지 않았습니다.

  • 메인압축은 허용하지만 압축은 허용하지 않음 오프라인 저장. (실제로 오프라인 스토리지는 여전히 이러한 열에 대해 수행되지만 다음과 같은 경우 최후의 수단으로만 사용됩니다. 행을 페이지에 맞도록 작게 만드는 다른 방법은 없습니다.)

각각스포츠 토토 베트맨-able 데이터 유형 해당 데이터 유형의 열에 대한 기본 전략을 지정하지만 주어진 테이블 열에 대한 전략은 다음을 사용하여 변경할 수 있습니다.테이블 세트 저장소 변경.

이 계획은 다른 계획에 비해 많은 장점이 있습니다. 행 값을 페이지에 걸쳐 허용하는 것과 같은 간단한 접근 방식입니다. 쿼리는 일반적으로 다음과의 비교를 통해 한정된다고 가정합니다. 키 값이 상대적으로 작기 때문에 실행자의 작업 대부분은 기본 행 항목을 사용하여 수행합니다. 의 큰 가치스포츠 토토 베트맨ed 속성은 추출만 됩니다( 전혀 선택됨) 결과 세트가 클라이언트로 전송될 때. 따라서 기본 테이블은 훨씬 더 작고 더 많은 행이 들어갑니다. 공유 버퍼 캐시가 없는 경우보다 오프라인 저장. 정렬 세트도 줄어들고 정렬은 더 커집니다. 종종 완전히 메모리에서 수행됩니다. 약간의 테스트를 통해 테이블이 일반적인 HTML 페이지가 포함되어 있으며 해당 URL은 약 를 포함한 원시 데이터 크기의 절반스포츠 토토 베트맨테이블, 기본 테이블에 포함된 내용 전체 데이터의 약 10%(URL 및 일부 작은 HTML) 페이지). 기존과 비교했을 때 실행 시간 차이가 없었습니다. 유엔-스포츠 토토 베트맨ed 비교표, in 모든 HTML 페이지를 7kB로 줄여서 맞췄습니다.