我使用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这样的响应时间正常了?