Nah indeks pada kolom cap waktu dan userid akan sangat membantu. Anda harus dapat membaca output dari Pernyataan EXPLAIN.
Buka MySQL dan lakukan hal berikut:
EXPLAIN SELECT timestamp, username, [a few more] FROM log
WHERE timestamp BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00'
AND username='XX'
Ini menunjukkan kepada Anda rencana yang digunakan MySQL untuk mengeksekusi kueri. Akan ada kolom yang disebut kunci. Ini menunjukkan indeks apa yang digunakan MySQL dalam kueri. Saya menduga Anda akan melihat SEMUA di sana yang berarti MySQL memindai tabel dari atas ke bawah mencocokkan setiap baris dengan klausa where Anda. Sekarang buat indeks pada kolom timestamp dan userid. Jalankan lagi pernyataan EXPLAIN. Anda akan melihat indeks yang Anda buat di kolom kunci.
Jika MySQL menggunakan indeks maka kueri Anda akan jauh lebih cepat. Hanya ingat untuk tidak over index. Indeks membuat penyisipan, pembaruan, dan penghapusan lebih lambat. Saat Anda memasukkan baris baru ke dalam tabel dan ada tiga indeks di atas tabel, baris baru harus menulis 3 nilai ke tiga indeks yang berbeda. Jadi ini adalah pedang bermata dua.