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

Berapa biaya kendala CHECK di Postgres 9.x?

Beberapa orang mencoba menghindari NULL nilai, mengklaim logika akan membingungkan.

Saya bukan salah satu dari mereka. NULL nilai baik-baik saja untuk kolom tanpa data. Mereka tentu saja merupakan cara termurah untuk menyimpan kolom "kosong" - untuk ruang disk serta kinerja (efek utamanya adalah tabel dan indeks yang lebih kecil):

Setelah Anda mengerti sifat NULL nilai, tidak ada alasan untuk menghindarinya. Postgres menawarkan berbagai fungsi untuk menangani NULL. colaesce() , nullif() , concat() , concat_ws() , ...

Secara umum, sejauh kinerja yang bersangkutan, batasan NOT NULL mengalahkan PERIKSA batasan dan keduanya mengalahkan pemicu oleh tembakan log. Tetapi bahkan pemicu sederhana pun murah. Biaya NOT NULL kendala hampir tidak ada. Selain itu, semua ini hanya memengaruhi operasi tulis, tetapi di sebagian besar aplikasi, operasi baca mendominasi.

Oleh karena itu, dampak paling relevan pada kinerja (indeks dan kueri suboptimal) adalah ukuran tabel dan indeks atau, yang lebih penting, jumlah tupel per halaman data . Tuple yang lebih besar menghasilkan kinerja yang lebih lambat untuk sebagian besar kasus penggunaan. Jumlah halaman data yang harus dibaca untuk memenuhi permintaan meningkat. Memori cache yang tersedia sudah jenuh sebelumnya.

Saya tidak memiliki tolok ukur yang siap, tetapi yang terbaik adalah menguji lingkungan khusus Anda. Ini hanya aturan praktis sederhana. Realitas jauh lebih kompleks.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hasilkan nomor acak dalam kisaran 1 - 10

  2. Aktifkan-AzVMRunCommand dan Mulai-Proses di bawah pengguna tertentu pada VM jarak jauh menggunakan Azure Runbook

  3. Postgres Tertanam untuk Tes Boot Musim Semi

  4. Bagaimana pgBouncer membantu mempercepat Django

  5. Kesalahan PostgreSQL:Fatal:nama pengguna peran tidak ada