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

Apakah pengaturan NOT NULL pada kolom di postgresql meningkatkan kinerja?

Menyetel NOT NULL tidak memiliki efek per se pada kinerja. Beberapa siklus untuk pemeriksaan - tidak relevan.

Tetapi Anda dapat meningkatkan kinerja dengan benar-benar menggunakan NULL alih-alih nilai dummy. Bergantung pada tipe data, Anda dapat menghemat banyak ruang disk dan RAM , sehingga mempercepat .. semuanya.

Bitmap nol hanya dialokasikan jika ada nilai NULL di baris . Ini satu bit untuk setiap kolom di baris (NULL atau tidak). Untuk tabel hingga 8 kolom, bitmap nol secara efektif benar-benar gratis, menggunakan byte cadangan antara header tuple dan data baris. Setelah itu, space dialokasikan ke dalam kelipatan MAXALIGN (biasanya 8 byte, mencakup 64 kolom). Perbedaannya hilang pada padding. Jadi, Anda membayar harga penuh (rendah!) untuk nilai NULL pertama di setiap baris . Nilai NULL tambahan hanya dapat menghemat ruang.

Persyaratan penyimpanan minimum untuk nilai non-null adalah 1 byte (boolean , "char" , ...) atau biasanya banyak lebih banyak, ditambah (mungkin) bantalan untuk penyelarasan. Baca tentang tipe data atau periksa detail berdarah di tabel sistem pg_type .

Selengkapnya tentang penyimpanan nol:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memetakan teks PostgreSQL[][] tipe dan tipe Java

  2. IServiceCollection tidak mengandung definisi atau ekstensi untuk AddNpgsql

  3. Batasan pada perubahan skema PostgreSQL di dalam transaksi?

  4. Memigrasi pernyataan Oracle MERGE ke pernyataan UPSERT PostgreSQL

  5. tipe yang ditentukan pengguna sebagai parameter input dalam fungsi PostgreSQL