我正在使用ListAPIView
来呈现对象列表。响应返回limit=50
的分页结果。查询集大小从0到几十万不等。
我注意到,当查询集大小较小时,API响应时间很短。但随着查询集大小的增加,API响应时间变得非常大。
分页真的是罪魁祸首吗?
有没有办法使用分页优化ListAPIView
的响应时间?
答案 0 :(得分:1)
如官方django文档中所述,querysets are lazy。
QuerySets很懒 - 创建QuerySet的行为不涉及任何数据库活动。您可以整天将过滤器堆叠在一起,在评估QuerySet之前,Django实际上不会运行查询。
另外,pagination compliments queryset's laziness。
因此,延迟的culprit不是分页。
案件结案......
但那又是什么呢?
Ordering
正如@ sha256所暗示的那样。如何加快速度?