我有一個過程,需要進行多個查詢,但他們都有一些共同的東西,所以我試圖優化它通過做一個更大的查詢一次這將包含所有信息,然後從中進行子查詢。問題是,當我檢查執行的SQL它仍然擊中每個子查詢的數據庫。做一個查詢命中數據庫,然後使其他人從它沒有擊中
首先,我必須問,在當前版本中是否可以使用Django,如果可以使用舊版本(在1.4.x中有Got和app),我該怎麼做?
的邏輯是比這更復雜,它還有另一個與另一對象,但想法是:
#I need it to hit the db here:
big_query = MyModel.objects.filter(something = something)
for object in another_model_query_set:
...
#I need it not to hit the db here:
sub_query = big_query.filter(another_something = object.something)
...
感謝您的時間
我認爲這應該是'[OBJ的OBJ在big_query中如果obj.another_something == object.something]'。 – 2014-12-04 15:43:38
因爲我沒有django的方式來做它我做了類似的純python,但創建一個字典,所以我可以更有效地訪問。不過,我想等一下,看看有人使用查詢集給我另一個答案。 – steven2308 2014-12-05 16:34:18