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

Kinerja basis data:pemfilteran pada kolom vs. tabel terpisah

Ini adalah masalah umum dalam desain database:Pertanyaan apakah akan memisahkan atau "mengarsipkan" catatan yang tidak lagi "aktif".

Pendekatan yang paling umum adalah:

  • Semuanya dalam satu tabel, tandai pesanan sebagai "lengkap" sebagaimana mestinya. Kelebihan:Solusi paling sederhana (baik dari segi kode maupun struktur), fleksibilitas yang baik (mis., mudah untuk "menghidupkan kembali" pesanan). Cons:Tabel bisa menjadi sangat besar, masalah baik untuk kueri maupun untuk mis. cadangan.
  • Arsipkan barang lama ke tabel terpisah. Memecahkan masalah dari pendekatan pertama, dengan biaya kerumitan yang lebih besar.
  • Gunakan tabel dengan partisi berbasis nilai. Itu berarti secara logis (untuk aplikasi) semuanya ada dalam satu tabel, tetapi di belakang layar DBMS menempatkan barang-barang ke dalam area terpisah tergantung pada nilai pada beberapa kolom. Anda mungkin akan menggunakan kolom "lengkap", atau "tanggal penyelesaian pesanan" untuk partisi.

Jenis pendekatan terakhir menggabungkan bagian baik dari dua yang pertama, tetapi membutuhkan dukungan dalam DBMS dan lebih rumit untuk disiapkan.

Catatan:

Tabel yang hanya menyimpan data "arsip" biasanya disebut sebagai "tabel arsip". Beberapa DBMS bahkan menyediakan mesin penyimpanan khusus untuk tabel ini (misalnya MySQL), yang dioptimalkan untuk memungkinkan pengambilan cepat dan efisiensi penyimpanan yang baik, dengan biaya perubahan/penyisipan yang lambat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan nama tabel yang direferensikan menggunakan tabel, bidang, dan nama skema

  2. Cara terbaik untuk menghapus jutaan baris dengan ID

  3. Kursor dengan postgres, di mana data disimpan dan berapa banyak panggilan ke DB

  4. PG::SintaksError untuk aplikasi rel

  5. PostgreSQL:Bagaimana cara menerapkan kardinalitas minimum?