繁体   English   中英

改善Django Rest框架中的分页和序列化时间

[英]Improving pagination and serialization time in django rest framework

我正在使用ListAPIView呈现对象列表。 响应返回limit=50分页结果。 查询集的大小从0到几十万不等。

我注意到的是,当queryset大小较小时,API响应时间也较小。 但是随着查询集大小的增加,API响应时间变得非常大。

分页实际上是这里的罪魁祸首吗?
有没有一种方法可以使用分页优化ListAPIView的响应时间?

如官方django文档中所述, querysets是lazy

QuerySet是惰性的–创建QuerySet的操作不涉及任何数据库活动。 您可以整天将过滤器堆叠在一起,并且Django在评估QuerySet之前不会真正运行查询。

此外, 分页还可以补充queryset的惰性

因此,造成延迟的罪魁祸首不是分页。
结案...


但是那是什么呢?

  • 在分页之前处理查询集 多次命中数据库,从而降低了应用速度。
  • 按照@ sha256的建议进行Ordering
  • 可能是非常昂贵的查询(您可以通过遵循docs进行检查)。

如何做才能更快?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM