我必須從資料庫中獲取客戶數量最多的國家/地區。我在 MySQL 上使用嵌套選擇有以下代碼:
select name as Country, max(cnt) as 'Amount of clients'
from (select countries.name, count(clients.id) as cnt from clients
inner join countries on clients.country = countries.id) as Results;
代碼作業正常。但我想知道如果我使用 ORDER BY 代替它在時間性能方面是否會更好,例如:
select countries.name as Country, count(clients.id) as 'Amount of clients'
from clients inner join countries on clients.country = countries.id
order by 'Amount of clients' desc limit 1;
有人可以解釋一下它們之間是否有重要區別,以及兩者中的一個是否更好,或者是否真的不重要。謝謝。
uj5u.com熱心網友回復:
過早的優化是萬惡之源。如果查詢很少使用并且運行迅速,則不應優化它。
話雖如此,我個人會使用第二種選擇。子查詢更難閱讀,應該避免使用,以便下一個開發人員(很可能是你)更容易。如果沒有正確完成,他們往往會遇到糟糕的性能問題。
請注意,“限制”是特定于 mysql 的,如果您想在另一個 sql 服務器上運行它,則必須重寫查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/490826.html
