我應該以最常見的情況開始CASE順序條件嗎?假設在我的數據庫中有3個產品。產品編號1.代表所有病例的70%,產品編號2代表29%的案例和產品編號。 1%的病例。SQL中CASE的性能是否與案例的頻率有關?
這是關於性能的最佳條件順序嗎?
SELECT
CASE
WHEN Product=1 THEN 'Most popular case'
WHEN Product=2 THEN 'Not very popular'
WHEN Product=3 THEN 'Very rare case'
END AS Frequency
只是很好理解。這是糟糕的順序嗎?
SELECT
CASE
WHEN Product=3 THEN 'Very rare case'
WHEN Product=2 THEN 'Not very popular'
WHEN Product=1 THEN 'Most popular case'
END AS Frequency
我知道的情況下,聲明事項的查詢執行的順序,並儘快退出如發現第一個真正的條件。但我的問題是關於CASE的頻率。
我想你是低估了查詢優化器。在我看來,最好專注於編寫正確和可讀的SQL查詢,而不是微觀優化具有可疑收益的事物。 – 2015-03-13 09:38:23
很容易檢查哪些案例最受歡迎,並將其置於查詢之上。我只想確認它是否重要。 – 2015-03-13 09:41:25
優化'SELECT'通常不是那麼重要,因爲您應該更關心'WHERE'必須首先找到記錄。因此,如果您有十億條記錄,而您的選擇會返回其中的十條,那麼您正在優化這10條記錄。 – 2015-03-13 09:42:40