我有一個性能相關的Django查詢問題。Django查詢性能
假設我有一張擁有10,000條記錄的員工表。現在,如果我要選擇年齡大於或等於20歲的5名隨機僱員,假設有5,500名員工年齡在20歲或以上。 Django的查詢是:
Employee.objects.filter(age__gte=20).order_by('?')[:5]
與此查詢在mysql中的原始副本將是:
SELECT * FROM `database`.`employee`
WHERE `employee`.`age` >= 20
ORDER BY RAND()
LIMIT 5;
從Django中的長相查詢數據庫首先返回5500條記錄,那麼Python各種各樣這些記錄隨機或我們選擇的任何順序,並返回一大塊前五條記錄,而原始查詢將僅從數據庫直接返回五條記錄。
我的問題是,這兩個查詢之間有任何性能差異?如果是的話哪個更好,爲什麼?
問得好幾個不同的建議 - 我不知道!儘管看看這個答案,你應該能夠應用他們建議的步驟來找出答案。 – chucksmash
哪個答案??? – Haroon
嘿,對不起! [This one](http://stackoverflow.com/a/1074224/341510) – chucksmash