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

Apa pro dan kontra melakukan perhitungan dalam sql vs. di aplikasi Anda?

Itu tergantung pada banyak faktor - tetapi yang paling penting:

  • kerumitan perhitungan (lebih suka melakukan penguraian yang rumit pada server aplikasi, karena hal itu akan mengurangi keluar; daripada server db, yang menskalakan naik )
  • volume data (jika Anda perlu mengakses/menggabungkan banyak data, melakukannya di server db akan menghemat bandwidth, dan disk io jika agregat dapat dilakukan di dalam indeks)
  • kenyamanan (sql bukan bahasa terbaik untuk pekerjaan kompleks - terutama tidak bagus untuk pekerjaan prosedural, tetapi sangat baik untuk pekerjaan berbasis set; penanganan kesalahan yang buruk)

Seperti biasa, jika Anda melakukannya bawa data kembali ke server aplikasi, meminimalkan kolom dan baris akan menguntungkan Anda. Memastikan kueri disetel dan diindeks dengan tepat akan membantu skenario mana pun.

Kembali catatan Anda:

dan kemudian loop melalui catatan

Perulangan melalui catatan hampir selalu merupakan hal yang salah untuk dilakukan di sql - menulis operasi berbasis set lebih disukai.

Sebagai aturan umum , saya lebih suka menjaga tugas database seminimal mungkin "simpan data ini, ambil data ini" - namun, selalu ada contoh skenario di mana kueri elegan di server dapat menghemat banyak bandwidth.

Pertimbangkan juga:jika ini mahal secara komputasi, dapatkah di-cache di suatu tempat?

Jika Anda menginginkan akurat "mana yang lebih baik"; kodekan keduanya dan bandingkan (perhatikan bahwa draf pertama dari keduanya kemungkinan tidak 100% disetel). Tetapi faktor dalam penggunaan umum untuk itu:jika, pada kenyataannya, itu dipanggil 5 kali (secara terpisah) sekaligus, maka simulasikan itu:jangan bandingkan hanya satu "1 dari ini vs 1 dari itu".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SALIN dengan nama file dinamis

  2. Optimalkan PostgreSQL untuk pengujian cepat

  3. Alat Peringatan dan Pemberitahuan Terbaik untuk PostgreSQL

  4. Menghindari kebuntuan PostgreSQL saat melakukan pembaruan massal dan operasi penghapusan

  5. Docker menunggu postgresql dijalankan