嵌套模型的Django Rest Frame性能

时间:2019-06-16 14:05:57

标签: python django django-rest-framework

我使用silk对我的Django应用进行了配置,结果发现,对于200000个数据库条目,GET列表调用总共花费701ms的时间,而查询仅花费了36ms的时间(我使用prefetch_related和{ {1}}和分页)

由于我假设数据库查询将花费最多的时间,所以我想知道我是否做错了什么,因为95%的时间都没有花在查询上。

我的主要测量模型非常嵌套,看起来像这样

   
select_related

并且前端希望为每个字段提供详细的nested-json输出,因此序列化程序不仅返回pk,而且还返回Foreign-models的所有子字段:

   
class Measurement(models.Model):
    filetype = models.ForeignKey(Filetype)
    sensor = models.ForeignKey(Sensor)
    sensorpositions = models.ManyToManyField('Sensorposition')
    experiment = models.ForeignKey(Experiment, related_name = "measurementexperiment")
    data = models.FileField(null=True)

那么我是因为嵌套序列化而浪费了很多时间,还是像701ms这样的响应时间正常了?

0 个答案:

没有答案