Postgresql | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 52. | Chuyển tiếp nhanh | NEXT |
Phần này cung cấp tổng quan về định dạng kèo bóng đá euro được sử dụngPostgreSQLBảng và[1]chuỗi vàbánh mì nướngBảng được định dạng
Trong phần giải thích sau, Abyteđược giả sử chứa 8 bit. Ngoài ra, thuật ngữMụcđề cập đến một giá trị dữ kèo bóng đá euro riêng lẻ đó là
Mỗi bảng và chỉ mục được lưu trữ dưới dạng một mảngkèo bóng đá eurocó kích thước cố định (thường là 8 kb, mặc dùMetapagegiữ thông tin điều khiển và ở đó
Bảng 52-2Hiển thị bố cục tổng thể của một kèo bóng đá euro. Có năm phần cho mỗi phần
Bảng 52-2. Bố cục kèo bóng đá euro tổng thể
Mục | Mô tả |
---|---|
PageHeaderData | 20 byte dài. Chứa thông tin chung về |
itemiddata | Mảng (bù, chiều dài) Các cặp chỉ vào thực tế |
không gian trống | Không gian không được phân bổ. Con trỏ mục mới là |
Mục | Bản thân các mục thực tế. |
không gian đặc biệt | Dữ kèo bóng đá euro cụ thể của phương thức truy cập chỉ mục. Các phương pháp khác nhau |
20 byte đầu tiên của mỗi kèo bóng đá euro bao gồm một tiêu đề kèo bóng đá euroBảng 52-3.PD_LOWER, PD_UPPERvàpd_special). Những điều này chứa các chênh lệch byte từpd_pagesize_version, Lưu trữ cả kích thước kèo bóng đá euroPostgreSQL8.1 Số phiên bản là 3;PostgreSQL8.0 Phiên bản đã sử dụngPostgreSQL7.3 và 7.4
Bảng 52-3. PageHeaderData Layout
trường | loại | length | Mô tả |
---|---|---|---|
PD_LSN | XLOGRECPTR | 8 byte | LSN: Byte tiếp theo sau byte cuối cùng của bản ghi XLOG cho |
PD_TLI | Dòng thời gian | 4 byte | TLI của thay đổi cuối cùng |
PD_LOWER | Vị trí Index | 2 byte | Offset để bắt đầu không gian trống |
PD_UPPER | Vị trí Index | 2 byte | Offset để kết thúc không gian trống |
pd_special | vị trí Index | 2 byte | Offset để bắt đầu không gian đặc biệt |
pd_pagesize_version | UINT16 | 2 byte | Kích thước kèo bóng đá euro và thông tin số phiên bản bố cục |
Tất cả các chi tiết có thể được tìm thấy trongsrc/bao gồm/lưu trữ/bufpage.h.
Theo tiêu đề kèo bóng đá euro là các định danh mục (itemiddata), mỗi người yêu cầu bốn byte. Một mặt hàngPD_LOWER, được tăng lên để phân bổ một cái mớiitempulum, còn được gọi làCTID) Được tạo bởiPostgreSQLbao gồm một số kèo bóng đá euro và
Bản thân các mặt hàng được lưu trữ trong không gian được phân bổ ngượcHeaptupleHeaderData, được mô tả bên dưới.
Phần cuối cùng là"Đặc biệtcó thể chứa bất cứ điều gì phương thức truy cậppd_specialĐể bằng kích thước kèo bóng đá euro).
Tất cả các hàng bảng được cấu trúc theo cùng một cách. Có aBảng. Dữ kèo bóng đá euro người dùng thực tế (các cột của hàng) bắt đầuT_HOFF, màHEAP_HASNULLbit được đặt trongT_INFOMASK. Nếu nó có mặt, nó chỉ bắt đầut_nattsBITS hoàn toàn). Trong danh sách các bit này, 1 bit cho biếtHEAP_HASOIDbit được đặt trongt_infomask. Nếu có mặt, nó xuất hiện ngay trướcT_HOFFranh giới. Bất kỳ đệmT_HOFFMaxalign
Bảng 52-4. Bố kèo bóng đá euro HeaptupleHeaderData
trường | loại | LEGN | Mô tả |
---|---|---|---|
t_xmin | TranstercentID | 4 byte | Chèn tem XID |
t_cmin | CommandID | 4 byte | Chèn tem CID |
t_xmax | TranstercentID | 4 byte | Xóa tem XID |
T_CMAX | CommandID | 4 byte | Xóa tem CID (lớp phủ với T_XVAC) |
T_XVAC | TranstercentID | 4 byte | XID cho hoạt động chân không di chuyển phiên bản hàng |
T_CTID | itempulinterdata | 6 byte | hiện tại của phiên bản hàng này hoặc mới hơn |
t_natts | INT16 | 2 byte | số lượng thuộc tính |
T_INFOMASK | UINT16 | 2 byte | BIT cờ khác nhau |
T_HOFF | UINT8 | 1 byte | OFFSET TO DỮ LIỆU |
Tất cả các chi tiết có thể được tìm thấy trongsrc/bao gồm/truy cập/htup.h.
Giải thích dữ kèo bóng đá euro thực tế chỉ có thể được thực hiện với thông tinPG_Attribution. Các giá trị chính cần thiết để xác địnhAttlenvàAttalign. Không có cách nào đểHEAP_GETATTR, FastGetAttrvàheap_getSysAttr.
Để đọc dữ kèo bóng đá euro bạn cần kiểm tra từng thuộc tính lần lượt.VarAttrib, bao gồm tổng chiều dàikèo bóng đá việtBảng; Nó cũng có thể được nén (xemPhần 52.2).
[1] |
Trên thực tế, các phương thức truy cập chỉ mục không cần sử dụng kèo bóng đá euro này |
prev | kèo bóng đá euro chủ | Tiếp theo |
bánh mì nướng | UP | BKIGiao diện phụ trợ |