Cài đặt NOT NULL
không có ảnh hưởng đến hiệu suất. Một vài chu kỳ cho việc kiểm tra - không liên quan.
Nhưng bạn có thể cải thiện hiệu suất bằng cách sử dụng NULL thay vì giá trị giả. Tùy thuộc vào loại dữ liệu, bạn có thể tiết kiệm nhiều dung lượng đĩa và RAM , do đó tăng tốc .. mọi thứ.
Bitmap null chỉ được cấp phát nếu có bất kỳ giá trị NULL nào trong hàng . Đó là một bit cho mọi trong hàng (NULL hoặc không). Đối với các bảng có tối đa 8 cột, bitmap rỗng thực sự hoàn toàn miễn phí, sử dụng một byte dự phòng giữa dữ liệu tiêu đề và hàng của tuple. Sau đó, không gian được phân bổ theo bội số của MAXALIGN
(thường là 8 byte, bao gồm 64 cột). Sự khác biệt bị mất để đệm. Vì vậy, bạn trả giá đầy đủ (thấp!) Cho giá trị NULL đầu tiên trong mỗi hàng . Giá trị NULL bổ sung chỉ có thể tiết kiệm dung lượng.
Yêu cầu lưu trữ tối thiểu cho bất kỳ giá trị nào khác là 1 byte (boolean
, "char"
, ...) hoặc thường là nhiều hơn nữa, cộng (có thể) đệm để căn chỉnh. Đọc thêm về các loại dữ liệu
hoặc kiểm tra chi tiết máu trong bảng hệ thống pg_type
.
Thông tin thêm về bộ nhớ rỗng: