Saya bukan ahli dalam bidang ini, tetapi berikut adalah beberapa pemikiran:
Kecepatan kueri lebih lama saat g.F2
perubahan adalah karena caching. MySQL akan menyimpan hasil untuk setiap kueri (sampai cache penuh), tetapi kueri baru dijalankan pada cache kosong, sehingga membutuhkan waktu lebih lama. Anda seharusnya tidak mengoptimalkan berdasarkan ini. (Lihat Cara mengukur secara akurat
)
Saya tidak tahu dari informasi Anda apakah g
atau gp
tabel memiliki spesifisitas yang lebih besar (sepertinya gp
?) di where
klausa, tetapi Anda mungkin ingin mencoba subquery sebagai gantinya. (Lihat Cara memaksa kueri dalam untuk dieksekusi terlebih dahulu
)
Mengenai pembuatan profil, mungkin Anda mencapai ambang batas fisik seperti melebihi alokasi ram (menggunakan swap adalah bencana untuk kinerja) yang tidak akan terlihat dari explain
, atau apakah explain
hanya salah dalam hal ini.