이 섹션은 사용 된 토토 사이트 형식의 개요를 제공합니다.postgresql테이블 및[1]시퀀스 및토스트테이블이 형식화되었습니다
다음 설명에서 A바이트는 8 비트를 포함한다고 가정합니다. 또한 용어항목개별 데이터 값을 나타냅니다
모든 테이블과 인덱스는 배열로 저장됩니다pages고정 크기 (보통 8kb, a전달제어 정보 유지 및 거기
표 54-2토토 사이트의 전체 레이아웃이 표시됩니다. 각각에는 5 개의 부분이 있습니다
표 54-2. 전체 페이지 레이아웃
항목 | 설명 |
---|---|
PageHeaderData | 24 바이트 길이. 에 대한 일반 정보가 포함되어 있습니다 |
itemiddata | 실제 (오프셋, 길이) 쌍의 배열은 실제를 가리 킵니다 |
여유 공간 | 할당되지 않은 공간. 새로운 아이템 포인터입니다 |
항목 | 실제 항목 자체. |
특별 공간 | 색인 액세스 방법 특정 데이터. 다른 방법 |
각 페이지의 첫 24 바이트는 페이지 헤더로 구성됩니다.표 54-3.PD_LOWER,pd_upper및PD_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] |
실제로 인덱스 액세스 방법은이 토토 사이트를 사용할 필요가 없습니다 |
이전 | 홈 | PostgreSQL : 문서 : 9.0 : BKI 백엔드 사설 토토 사이트 |
가시성 맵 | up | bki백엔드 인터페이스 |