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".