実行に3〜4秒かかる複雑なクエリがあります(これより少なくすることはできません。可能な限り最適化されています)。これはページ付けされています。ただし、django-debug-toolbarを使用すると、データベースが2回「ヒット」していることに気付きました。
最初の「ヒット」はここにあります:items = paginator.page(page_number)
そして少し後でif items:
クエリには3〜4秒かかりますが。これらの2つのポイントでデータベースをヒットすると、6〜7秒の推定ページロードが得られます。
これは正常ですか?2つの「ヒット」を回避し、1つのデータベース「ヒット」でのみページ付けされたアイテムを取得できますか?
これは、要求された場合の私のコードです。
paginator = Paginator(tips, PAGE_ITEMS)
items = paginator.page(page_number)
if items:
offset = items.object_list[0]
else:
offset = None