PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kích thước bảng với bố cục trang

Tính toán của bạn bị sai ở một số điểm.

Nhấn mạnh đậm của tôi để giải quyết câu hỏi trong nhận xét.

  • HeapTupleHeader chiếm 23 byte . Nhưng mỗi bộ ("item" - mục nhập hàng hoặc chỉ mục) có một số nhận dạng mặt hàng ở đầu trang dữ liệu, tổng cộng là 27 byte được đề cập. Sự khác biệt có liên quan vì dữ liệu người dùng thực tế bắt đầu bằng bội số của MAXALIGN từ đầu mỗi mặt hàng và số nhận dạng mặt hàng không tính vào khoảng chênh lệch này - cũng như "kích thước tuple" thực tế.

  • 1 byte đệm do căn chỉnh dữ liệu (bội số của 8), được sử dụng cho bitmap NULL trong trường hợp này.

  • Không có phần đệm cho loại varchar (nhưng byte bổ sung được đề cập ở trên)

Vì vậy, phép tính thực tế (với tất cả các cột được lấp đầy đến mức tối đa) là:

    23    -- heaptupleheader
 +   1    -- NULL bitmap (or padding if row has NO null values)
 +   9    -- columns ...
 + 101 
 +   2 
 + 101 
 +   4 
 +  11
-------------
   252 bytes

 +   4    -- item identifier at page start

Có liên quan:

Bạn sẽ tìm thấy nhiều thứ khác trong danh sách liên kết ở bên phải của những câu trả lời này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt giá trị của trường biến tổng hợp bằng SQL động

  2. Cách Div () hoạt động trong PostgreSQL

  3. Postgres db design Bình thường hóa bảng hoặc sử dụng cột mảng

  4. Làm cách nào để ngăn không cho PDO diễn giải dấu chấm hỏi dưới dạng trình giữ chỗ?

  5. Lược đồ Django và postgresql