我正在嘗試使用批量保存對象的實驗。使用Django調試工具欄,我可以看到有多少SQL查詢運行。但是,看起來裝飾器對SQL查詢的數量沒有影響 - 它在裝飾器或沒有裝飾器的情況下保持不變。它應該減少嗎?django的commit_on_success對sql查詢的數量沒有影響
@transaction.commit_on_success()
def fastsave(queryset):
for t in queryset:
t.save()
def test(request):
fastsave(TimeEvent.objects.all())
return render_to_response('test.html', {})
有什麼辦法可以優化這個嗎?我有一個很大的查詢集,我將更新每個對象,但是目前這會針對每個對象命中數據庫並導致一些事情發生。 – victor 2012-01-06 07:09:47
如果你更新每個對象,那麼它會擊中每個對象。儘可能通過查詢集進行批量更新。 – 2012-01-06 07:12:06