我有一個包含三個字段的數據庫(MySQL)表:id,score和percent。SQL語句中計算的速度
長話短說,我需要做的每一個看起來像這樣的記錄計算:
(得分* 10)/(1 - 百分比)=價值
然後我需要使用在我的代碼和ORDER BY字段中都是值。編寫SQL不是我的問題 - 我只是擔心這個聲明的效率。在我的SQL語句中做這種計算是最有效的資源利用方式,還是我會更好地獲取數據,然後通過PHP進行數學計算?
如果SQL是最好的辦法,是否有任何提示,我可以記住保持我的SQL拉儘可能快?
更新1:只是爲了澄清一些事情,因爲它看起來像許多答案都假設不同:分數和百分比都會不斷變化。實際上,幾乎每次用戶與應用程序交互時,這些字段都會改變(這些字段實際上與用戶相關聯,順便說一句)。至於記錄的數量,現在它非常小,但我想要爲約200萬條記錄(用戶)的目標集合進行縮放。在任何給定時間,我只需要20個記錄,但我需要它們成爲按此計算值排序的前20條記錄。
您可以使用此值將另一個字段添加到數據庫中,在添加或更新數據時計算它。你有基準測試需要多長時間? – 2011-06-21 20:21:20
使用MySQL的「解釋」函數來查看時間執行。 – FinalForm