2

我试图了解我的应用程序上的每个请求需要多少 SQL 选择查询(Django+Tastypie)。我更改了日志记录配置,以便可以查看相关日志。出于某种原因,我看到了大量这些日志。例如,对于简单的 get_list - 我看到 ~100 选择行。当我尝试调试以查看它们的来源时,我无法进入生成这些日志的行。我还注意到左侧的数字非常低(通常为 0.001)。我假设这个数字是执行查询的时间(以秒为单位)。

知道所有这些行的解释是什么吗?

4

1 回答 1

1

在你的 sweetpie api.py 文件中,你可能需要将默认查询集更改为包含 prefetch_related 或 select_related。您使用哪个取决于您的实际型号。这是一个例子:

class OfferResource(ModelResource):
    user = fields.ForeignKey(UserResource, 'user', full=False)
    country = fields.ForeignKey(CountryResource, 'country', full=True) 
    campaign = fields.ForeignKey(CampaignResource, 'campaign', full=False)    
    network = fields.ForeignKey(NetworkResource, 'network', full=False, null=True)       
    class Meta:
        queryset = Offer.objects.prefetch_related('offerstat').select_related('country', 'campaign', 'network').all()   
于 2012-05-04T02:24:57.497 回答