我有一個複雜的查詢,需要3-4秒才能執行(不能少一點,它儘可能優化)。這是分頁。但是,使用django-debug-toolbar我注意到數據庫是兩次「命中」。django複雜查詢命中分貝兩次,雖然分頁。
第一「重災區」在這裏:在if items:
items = paginator.page(page_number)
再晚了一點。雖然查詢需要3-4秒。在這兩點擊中數據庫,我估計頁面負載爲6-7秒。
這是正常的嗎?我是否可以避免這兩個'命中'並僅在一個數據庫'命中'中檢索分頁項目?
這是我的情況下,代碼要求:
paginator = Paginator(tips, PAGE_ITEMS)
items = paginator.page(page_number)
if items:
offset = items.object_list[0]
else:
offset = None
它做兩次相同的查詢嗎? – Rohan
否。第二次查詢是'SELECT A FROM B'時,第一次是'SELECT COUNT(*)FROM(SELECT A FROM B)'。唯一的區別是對象的計數 – xpanta