執行MySQL查詢時,在計算任何字段之前是否通過WHERE條件過濾了所有數據?MySQL首先完成 - 過濾WHERE條件或計算字段?
我有一個應用程序,我需要按距離排序,但需要計算查詢(found this which should cover that part of it(頁面8))中來自lat/lng的距離,但它提到查詢速度很慢。我想知道MySQL是否會爲每個數據庫條目計算出距離,然後過濾這些結果,或者如果結果將首先被過濾掉?
編輯:
我並沒有說得很清楚 - 我只需要在這個階段訂購的結果。按距離過濾也會很好,但這總是次要的其他標準 - 即類型將始終需要酒店之前,它是如何接近它的座標
好的,謝謝。那麼你會說用一個查詢獲取WHERE條件的數據,然後使用第二個查詢來計算距離並根據第一個查詢對結果進行排序將是實現這種性能的最佳方式(性能明智)? – ollie
@ollie更新了我的答案。 – fancyPants
我不需要像我鏈接的文章那樣按距離過濾 - 我有點不清楚 - 我需要按距離排序,但還有其他標準需要滿足。如果我可以先通過這些其他標準進行篩選,那麼它將節省工作距離,這些條目永遠不會包含在內?理論上,如果我需要,我可以在稍後過濾,但在較小的樣本上。 (在原始問題中增加了幾個句子來澄清) – ollie