이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 토토 사이트를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 65.6. 데이터베이스 토토 베이 레이아웃버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

54.5. 데이터베이스 토토 사이트 레이아웃

이 섹션은 사용 된 토토 사이트 형식의 개요를 제공합니다.postgresql테이블 및[1]시퀀스 및토스트테이블이 형식화되었습니다

다음 설명에서 A바이트는 8 비트를 포함한다고 가정합니다. 또한 용어항목개별 데이터 값을 나타냅니다

모든 테이블과 인덱스는 배열로 저장됩니다pages고정 크기 (보통 8kb, a전달제어 정보 유지 및 거기

표 54-2토토 사이트의 전체 레이아웃이 표시됩니다. 각각에는 5 개의 부분이 있습니다

표 54-2. 전체 페이지 레이아웃

항목 설명
PageHeaderData 24 바이트 길이. 에 대한 일반 정보가 포함되어 있습니다
itemiddata 실제 (오프셋, 길이) 쌍의 배열은 실제를 가리 킵니다
여유 공간 할당되지 않은 공간. 새로운 아이템 포인터입니다
항목 실제 항목 자체.
특별 공간 색인 액세스 방법 특정 데이터. 다른 방법

각 페이지의 첫 24 바이트는 페이지 헤더로 구성됩니다.표 54-3.PD_LOWER,pd_upperPD_SPECIAL). 여기에는 바이트 오프셋이 포함되어 있습니다pd_pagesize_version, 토토 사이트 크기를 모두 저장하십시오PostgreSQL8.3 버전 번호는 4;PostgreSQL8.1 및 8.2 사용postgresql8.0PostgreSQL7.3 및 7.4 중고 버전 번호

표 54-3. PageHeaderData 레이아웃

필드 타입 길이 설명
PD_LSN xlogrecptr 8 바이트 LSN : XLOG 레코드의 마지막 바이트 후 다음 바이트
PD_TLI UINT16 2 바이트 마지막 변경의 타임 라인 (최저 16
PD_FLAGS UINT16 2 바이트 플래그 비트
PD_LOWER LocationIndex 2 바이트 여유 공간의 시작으로 오프셋
pd_upper LocationIndex 2 바이트 여유 공간의 끝으로 오프셋
PD_SPECIAL LocationIndex 2 바이트 특별 공간의 시작으로 오프셋
pd_pagesize_version UINT16 2 바이트 토토 사이트 크기 및 레이아웃 버전 번호 정보
PD_PRUNE_XID TransactionId 4 바이트 토토 사이트에 가장 오래된 예측되지 않은 xmax 또는 0이면 0

모든 세부 사항은에서 찾을 수 있습니다src/include/storage/bufpage.h.

페이지 헤더 다음은 항목 식별자입니다 (itemiddata), 각각 4 개의 바이트가 필요합니다. 항목PD_LOWER, 새로운 것을 할당하기 위해 증가합니다ItemPointer, 또한CTID) 생성PostgreSQL토토 사이트 번호와

항목 자체는 뒤로 할당 된 공간에 저장됩니다HeappupleHeaderData, 아래 설명.

마지막 섹션은입니다."스페셜액세스 방법을 포함 할 수 있습니다PD_SPECIAL토토 사이트 크기와 동일).

모든 테이블 행은 같은 방식으로 구성됩니다. A가 있습니다테이블. 실제 사용자 데이터 (행의 열)는t_hoffHeap_hasnull비트가 설정되었습니다T_INFOMASK. 그것이 존재한다면 그것은 단지 시작됩니다t_nattsBITS 전체). 이 비트 목록에서 1 비트가 나타납니다Heap_hasoid비트가 설정되었습니다T_INFOMASK. 존재한다면, 직전에 나타납니다t_hoff경계. 모든 패딩t_hoffMaxalign

표 54-4. HeptupleHeaderData 레이아웃

필드 타입 길이 설명
t_xmin TransactionId 4 바이트 XID 스탬프 삽입
t_xmax TransactionId 4 바이트 XID 스탬프 삭제
t_cid CommandId 4 바이트 삽입 및/또는 CID 스탬프 (오버레이)
T_XVAC TransactionId 4 바이트 진공 조작을위한 xid 행 버전
T_CTID ItemPointerData 6 바이트 현재 또는 새로운 행 버전의 현재 시간
T_INFOMASK2 int16 2 바이트 속성 수, 다양한 플래그 비트
T_INFOMASK UINT16 2 바이트 다양한 플래그 비트
t_hoff uint8 1 바이트 사용자 데이터 오프셋

모든 세부 사항은에서 찾을 수 있습니다.src/include/access/htup.h.

실제 데이터 해석은 정보로만 수행 할 수 있습니다.pg_attribute. 식별하는 데 필요한 주요 값attlenandattalign. 방법이 없습니다heap_getattr,FastgetAttrandheap_getsysattr.

데이터를 읽으려면 각 속성을 차례로 검사해야합니다.Struct Varlena, 여기에는 총계가 포함됩니다토스트테이블; 압축 될 수 있습니다 (참조섹션 54.2).

노트

[1]

실제로 인덱스 액세스 방법은이 토토 사이트를 사용할 필요가 없습니다