Anda akan berpikir kueri ini hanya mengeksekusi subkueri satu kali, menyimpan hasilnya, lalu membandingkannya dengan baris di kueri luar. Tapi tidak demikian halnya dengan MySQL. MySQL memiliki celah dalam kecerdasan pengoptimalnya, sehingga memperlakukan subquery sebagai subquery dependen dan mengeksekusinya kembali untuk setiap nilai yang berbeda dari kueri luar.
Untuk memperbaikinya, pindahkan subquery ke dalam klausa FROM sebagai tabel turunan. Ini akan mengeksekusi subquery sekali, dan menyimpan hasilnya sebagai tabel sementara internal. Kemudian gabung ke instance tabel lainnya.
SELECT `ID`, `CountryCode`, `Name`, `District`, `Population`
FROM `City`
JOIN (
SELECT `CountryCode`, MAX(`Population`) AS `Population`
FROM `City`
GROUP BY `CountryCode`
) AS _max USING (`CountryCode`, `Population`);
Anda juga harus memiliki indeks di Kota di atas dua kolom (CountryCode,Population)
dalam urutan itu, sehingga kueri GROUP BY dapat berjalan secara efisien.