Judul merangkumnya. Saya cukup kaya dengan PHP, dan nyaman mendapatkannya untuk melakukan apa yang saya butuhkan dengan nilai-nilai yang ditarik dari MySQL, namun untuk kepentingan memperluas pengetahuan saya, saya bertanya-tanya apakah mungkin itu akan menjadi teknik yang lebih efisien dalam jangka panjang. Apakah mereka setara (karena kira-kira jumlah pemrosesan yang sama pada akhirnya), atau adakah kasus-kasus di mana satu menyajikan keuntungan yang berbeda dari yang lain?
8
Jawaban:
Itu sangat tergantung pada apa yang Anda lakukan dengan catatan, dan seperti apa arsitektur jaringan Anda. Misalnya, jika prosedur tersimpan akan mengurangi jumlah keseluruhan data yang dikirim dari MySQL ke PHP, dan Anda memiliki tautan yang relatif lambat antara instance PHP dan database, SP pasti dapat membantu Anda.
Saya akan merekomendasikan Anda mulai dengan beberapa manipulasi 'lebih berat' yang Anda lakukan untuk data Anda di sisi PHP, lihat apa yang dapat Anda tulis sebagai SP, dan kemudian membandingkannya.
sumber
Suatu titik dalam mendukung melakukan lebih banyak pemrosesan dalam database adalah bahwa database tidak dapat mengoptimalkan apa yang tidak terlihat. Sebagai contoh, mengatur properti dari kelas yang tetap ke nilai konstan untuk semua instance pasti akan berkinerja lebih baik jika dilakukan di lapisan database.
Satu hal yang bertentangan adalah bahwa database bagus untuk operasi berbasis set, tetapi tidak begitu baik untuk operasi berbasis baris. Misalnya, sesuatu seperti mengonversi waktu UTC ke waktu lokal berdasarkan zona waktu yang bervariasi per baris mungkin tidak berfungsi dengan baik di database seperti di lapisan aplikasi.
sumber
Biasanya jika hasilnya adalah agregasi, (jumlah, rata-rata, hitung) itu jauh lebih cepat untuk dihitung di server database, dengan menghindari komunikasi yang tidak perlu antara server dan klien. Selain itu, pemesanan dan pengelompokan dapat memanfaatkan indeks, mengurangi jumlah perhitungan.
sumber