0
私は、このようなクエリがありますMySQLは、クエリのパフォーマンスを向上させる
SELECT city.id, city.country_id, localization.lang , localization.name, ... some other fields ...
FROM city city
LEFT OUTER JOIN city_localization localization ON (localization.city_id = city.id)
WHERE city.country_id = '196' AND localization.lang = 'en'
ORDER BY localization.name
"都市" のテーブルスキーマ:
"city_localization" テーブルスキーマ:
を説明出力:
にはどうすればいいfilesortレコードや一時的な使用を避けることができますか?
filesortとtemporaryについてはわかりませんが、実際には内部結合で置き換えて、左側の結合の右側をフィルタリングすることに気付きました。結合自体で 'city_localization'をフィルタリングする必要があります:' LEFT OUTER JOIN city_localization localization ON(localization.city_id = city.idとlocalization.lang = 'en') '。 –