簡體   English   中英

MySQL 提高查詢性能

[英]MySQL improve query performance

我有這樣的查詢:

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”表模式:

在此處輸入圖像描述

解釋output:

在此處輸入圖像描述

如何避免使用文件排序和臨時文件?

您需要為localization.name創建一個索引,為localization.city_id創建另一個索引(您目前有一個還包括localization.lang的索引)。

如果您要檢索很多行,您可能希望從 select 中刪除city.country_idlocalization.lang ,畢竟您已經有了這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM