ada tutorial kali ini saya akan meberikan materi tentang MYSQl yaitu 5 Best Practice Untuk MYSQL Part 2, yang dimaksud best pratice di sini adalah cara-cara yang lebih praktis dan optimal pada MYSQL.
- LIMIT 1 Ketika Mendapatkan Unik Row
Terkadang saat Anda melakukan query pada tabel Anda, Anda sudah tahu bahwa Anda hanya mencari satu baris. Anda mungkin mengambil catatan unik, atau Anda mungkin hanya memeriksa keberadaan sejumlah catatan yang memenuhi klausa WHERE Anda. Dalam kasus tersebut, menambahkan LIMIT 1 ke kueri Anda dapat meningkatkan kinerja. Dengan cara ini mesin database akan berhenti memindai catatan setelah menemukan hanya 1, alih-alih melewati keseluruhan tabel atau indeks :
1234567891011121314// do I have any users from Alabama?// what NOT to do:$r = mysql_query("SELECT * FROM user WHERE state = 'Alabama'");if (mysql_num_rows($r) > 0) {// ...}// much better:$r = mysql_query("SELECT 1 FROM user WHERE state = 'Alabama' LIMIT 1");if (mysql_num_rows($r) > 0) {// ...}
- Lakukan INDEX pada Kolom Pencarian
Indeks tidak hanya untuk primary key saja. Jika ada kolom di table Anda yang akan Anda cari, Anda hampir harus selalu mengindeksnya :
Seperti yang Anda lihat, aturan ini juga berlaku pada pencarian string parsial seperti “last_name LIKE ‘a%'”. Saat mencari dari awal string, MySQL mampu memanfaatkan indeks pada kolom tersebut. Anda juga harus memahami jenis pencarian mana yang tidak dapat menggunakan indeks biasa. Misalnya, saat mencari kata (misalnya “WHERE post_content LIKE ‘% apple%'”), Anda tidak akan melihat keuntungan dari indeks normal. Anda akan lebih baik menggunakan pencarian mytql fulltext atau membangun solusi pengindeksan Anda sendiri. - INDEX Dan Gunakan Tipe Kolom Yang Sama Untuk JOIN
Seperti yang Anda lihat, aturan ini juga berlaku pada pencarian string parsial seperti “last_name LIKE ‘a%'”. Saat mencari dari awal string, MySQL mampu memanfaatkan indeks pada kolom tersebut. Anda juga harus memahami jenis pencarian mana yang tidak dapat menggunakan indeks biasa. Misalnya, saat mencari kata (misalnya “WHERE post_content LIKE ‘% apple%'”), Anda tidak akan melihat keuntungan dari indeks normal. Anda akan lebih baik menggunakan pencarian mytql fulltext atau membangun solusi pengindeksan Anda sendiri.
12345678// looking for companies in my state$r = mysql_query("SELECT company_name FROM usersLEFT JOIN companies ON (users.state = companies.state)WHERE users.id = $user_id");// both state columns should be indexed// and they both should be the same type and character encoding// or MySQL might do full table scans
Oke sampai di sisni dulu untuk 5 Best Practice Untuk MYSQL Part 2,  karena ada beberapa lagi yang sepertinya perlu saya sampaikan maka saya akan membuat 4 TIPS lagi unutk anda di artikel selanjutnya.