Blog Posts » General » [MySQL] Pencegahan Slow Query

[MySQL] Pencegahan Slow Query

Saya akan memberi sedikit tips untuk menghindari slow query di MySQL, terutama untuk yang sedang belajar SQL seperti saya :)

Optimisasi Index (KEY)

Menurut saya wajib menambahkan index pada field field tertentu, terutama yang digunakan untuk klausa WHERE dan penyortiran (ORDER BY).

Apa maksud dari index?

Index adalah semacam table of contents atau daftar informasi dari suatu table. Index bermanfaat untuk mempercepat pencarian data karena tanpa melihat tabel secara langsung (CMIIW).

Macam-macam index:
1. PRIMARY KEY
Index tipe ini tidak mengijinkan duplikasi data. Hati-hati menambahkan PRIMARY KEY pada field yang kemungkinan nantinya akan diisi dengan data yang sama. PRIMARY KEY umumya digunakan di field ID, misal user_id, category_id, dll (interaksi antar tabel).
2. UNIQUE KEY
Hampir sama dengan PRIMARY KEY, tidak mengijinkan duplikasi data. Bedanya (yang saya tahu) UNIQUE KEY boleh dipasang di banyak field sedangkan PRIMARY KEY hanya satu saja.
3. KEY
Mengijinkan duplikasi data.

Jika kita tidak memanfaatkan key-key tersebut, query kita dipastikan akan slow down saat data kita mencapai ratusan ribu sampai jutaan rows. Misalnya pada field yang digunakan untuk WHERE dan ORDER BY tetapi field tersebut tidak diindex atau ditambahkan key.

Contoh:
[Textarea][RAW][Download]

  1. SELECT post_title, post_content FROM blog WHERE cat_id = x ORDER BY post_time DESC LIMIT 10


Kalau kita lihat query diatas, maka field yang perlu ditambahkan key adalah ... Pasti Anda sudah tahu :) Good Luck.