Blog Posts » MySQL » List of MySQL Slow-Queries
List of MySQL Slow-Queries
Berikut ini adalah daftar penggunaan query yang lambat pada MySQL yang telah saya temui. Sebenarnya sudah cukup banyak tetapi lupa hingga terjebak lagi dengan slow-query yang sama. Maka dari itu akan saya catat disini mulai dari awal, agar tidak ada lagi kesalahan yang ketiga
SELECT MAX() atau MIN() dengan WHERE:
[Normal][RAW][Download]
Query tsb saya tes pada 100 ribuan baris memakan waktu lebih dari satu detik. Jika tanpa pengkondisian WHERE id = 1, cuma 0.0002 detik. Jadi kesimpulannya jangan menaruh pengkondisian jika menggunakan SELECT MAX() atau MIN() pada data yang cukup besar.
Bagaimana jika ingin tetap menggunakan pengkodisian? Berikut ini adalah query pengganti SELECT MIN() diatas, meskipun tampak lebih panjang tetapi bisa jauh lebih cepat:
[Normal][RAW][Download]
Queri tsb memakan waktu sekitar 0.0003 detik. Boleh menghilangkan "ORDER BY timestamp ASC" tetapi jika index-nya kacau (fragmentasi?) hasilnya bisa tidak valid.
Jika menggunakan SELECT MAX() maka penggantinya kira-kira seperti ini:
[Normal][RAW][Download]
Kita taruh angka sembarang aja asal nilainya besar. Pada contoh tsb saya kasih angka 18446744073709551615 yaitu nilai maksimal BIGINT unsigned. Untuk yang ini wajib memakai "ORDER BY timestamp DESC", sebab kalau tidak hasilnya seperti SELECT MIN().
Bersambung... Capek nulisnya
Update:
Saya cek dengan:
[Normal][RAW][Download]
menunjukkan bahwa MySQL condong menggunakan index id.
Lalu saya coba paksa untuk menggunakan index timestamp ternyata kecepatannya menjadi 0.1241 detik (lebih cepat):
[Normal][RAW][Download]
Tetapi masih lebih cepat query pengganti diatas..
Lanjut Optimasi MySQL ORDER BY