ada artikel ini saya akan memberikan materi lanjutan tentang best practice yang telah kita bahas pada 2 artikel sebelumnya yaitu 4 Tips lanjutan Best Practice Pada MYSQL Part 2 .  Oke langsung saja kita coba ya.

  1. Prepared Statment
    Ada banyak manfaat untuk menggunakan prepare stament, baik untuk alasan kinerja dan keamanan.

    Pernyataan prepare akan menyaring variabel yang Anda ikat secara default, yang sangat bagus untuk melindungi aplikasi Anda terhadap serangan injeksi SQL. Anda tentu saja dapat menyaring variabel Anda secara manual juga, namun metode tersebut lebih rentan terhadap kesalahan manusia dan kelupaan oleh pemrogram. Ini kurang menjadi masalah saat menggunakan semacam framework atau ORM.

    Karena fokus kami adalah pada kinerja, saya juga harus menyebutkan manfaat di bidang itu. Manfaat ini lebih penting bila kueri yang sama digunakan beberapa kali di aplikasi Anda. Anda dapat menetapkan nilai yang berbeda pada pernyataan yang dipersiapkan yang sama, namun MySQL hanya perlu mengurainya sekali saja.

    Juga versi terbaru dari MySQL mentransmisikan pernyataan siap dalam bentuk biner asli, yang lebih efisien dan juga dapat membantu mengurangi penundaan jaringan.

    Ada saat ketika banyak programmer terbiasa menghindari pernyataan yang disiapkan dengan sengaja, karena satu alasan penting. Mereka tidak di-cache oleh cache query MySQL. Tapi karena sekitar versi 5.1, permintaan caching juga didukung.

    Untuk menggunakan pernyataan siap di PHP Anda melihat ekstensi mysqli atau menggunakan lapisan abstraksi database seperti PDO.

    2.  Unbuffered Queries

    Biasanya saat Anda melakukan kueri dari skrip, akan menunggu eksekusi kueri tersebut selesai sebelum dapat dilanjutkan. Anda bisa mengubahnya dengan menggunakan unbuffered queries.

    Ada penjelasan bagus di dokumen PHP untuk fungsi mysql_unbuffered_query ():

    “Mysql_unbuffered_query () mengirimkan query query SQL ke MySQL tanpa secara otomatis mengambil dan menyangga baris hasil seperti mysql_query (). Hal ini menghemat memori dalam jumlah besar dengan query SQL yang menghasilkan set hasil yang besar, dan Anda dapat mulai mengerjakan set hasil Segera setelah baris pertama telah diambil karena Anda tidak perlu menunggu sampai query SQL selesai. ”

    Namun, itu datang dengan keterbatasan tertentu. Anda harus membaca semua baris atau memanggil mysql_free_result () sebelum Anda dapat melakukan query lain. Anda juga tidak diizinkan menggunakan mysql_num_rows () atau mysql_data_seek () pada kumpulan hasil