【问题标题】:Django SQL Select logs - why do I see so many of them?Django SQL Select 日志 - 为什么我会看到这么多?
【发布时间】:2012-05-13 08:28:23
【问题描述】:

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

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

【问题讨论】:

    标签: sql django performance select logging


    【解决方案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()   
    

    【讨论】:

    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2016-08-02
    • 2012-10-09
    相关资源
    最近更新 更多