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

Đặt NOT NULL trên một cột trong postgresql có làm tăng hiệu suất không?

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:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khôi phục kết xuất trên máy từ xa

  2. Sqlalchemy đã sao chép mệnh đề WHERE thành FROM

  3. Giá trị chênh lệch múi giờ máy chủ

  4. DELETE đệ quy PostgreSQL

  5. Symfony / Doctrine:Làm thế nào để Doctrine hoạt động với Unix socket?