我有一个复杂的查询,需要 3-4 秒才能执行(不能少,它已尽可能优化)。这是分页的。但是,使用 django-debug-toolbar 我注意到数据库被“命中”了两次。
第一个“命中”在这里:items = paginator.page(page_number)
然后稍后在if items:
虽然查询需要 3-4 秒。在这两点上点击数据库,我估计页面加载时间为 6-7 秒。
这是正常的吗?我可以避免两次“命中”并仅在一个数据库“命中”中检索分页项目吗?
如果要求,这是我的代码:
paginator = Paginator(tips, PAGE_ITEMS)
items = paginator.page(page_number)
if items:
offset = items.object_list[0]
else:
offset = None