PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Berapa banyak ruang disk yang diperlukan untuk menyimpan nilai NULL menggunakan DB postgresql?

Laramie benar tentang bitmap dan dia menautkan ke tempat yang tepat di manual. Namun, ini hampir, tetapi tidak sepenuhnya benar:

Jadi untuk setiap baris tertentu dengan satu atau lebih null, ukuran yang ditambahkan padanya akan menjadi ukuran bitmap (N bit untuk tabel N-kolom, dibulatkan ke atas).

Seseorang harus memperhitungkan penyelarasan data. HeapTupleHeader (per baris) panjangnya 23 byte, data kolom yang sebenarnya selalu dimulai dengan kelipatan MAXALIGN (biasanya 8 byte). Itu menyisakan satu byte padding yang dapat digunakan oleh bitmap nol. Akibatnya penyimpanan NULL benar-benar gratis untuk tabel hingga 8 kolom .

Setelah itu, MAXALIGN lagi (biasanya 8) byte dialokasikan untuk MAXALIGN * 8 berikutnya (biasanya 64) kolom. Dll. Selalu untuk jumlah total kolom pengguna (semua atau tidak sama sekali ). Tetapi hanya jika setidaknya ada satu nilai NULL aktual dalam baris.

Saya menjalankan tes ekstensif untuk memverifikasi semua itu. Selengkapnya:

  • Apakah tidak menggunakan NULL di PostgreSQL masih menggunakan bitmap NULL di header?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekstrak tanggal (yyyy/mm/dd) dari stempel waktu di PostgreSQL

  2. Menulis file menggunakan banyak utas

  3. Gabung mandiri rekursif Postgresql

  4. PostgreSQL mengembalikan fungsi dengan Tipe Data Kustom

  5. Instalasi PostgreSQL 9 di Windows:Tidak dapat menulis di dalam jalur lingkungan TEMP.