首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django MySQL连接以提高性能

Django MySQL连接以提高性能
EN

Stack Overflow用户
提问于 2014-12-30 09:14:12
回答 1查看 75关注 0票数 1

我在找医疗用品

我有10个区域,每个地方有10张桌子,每个桌子都有医疗药房,还有10张桌子,每张桌子上都有这些药房提供的医疗用品。

现在我在所有这些配药中寻找一个医疗物品。

对于每一个区域,我都会得到一些物体

代码语言:javascript
运行
复制
  a_list = Washington_dispensaries.objects.all()

然后我在搜索每个药房里是否有这个特定的物品。

代码语言:javascript
运行
复制
if category:
    a_lists = []
    for dispensary in a_list:
        items = dispensary.washington_dispensaries_item_set.filter(item__product_type__name = category)

        if items:
            result_cat_items.append(items)
            a_lists.append(dispensary)
    a_list = a_lists

完成所有10个区域的此查询需要15秒。

如果我用PHP编写代码,我将使用MySQL联接来加快查询速度。现在我如何更快地查询。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 10:07:05

您已经做了两个联接,到item和product_type。所以,再做一次:不要把药房分开,而是把它作为过滤器的一部分。在没有看到模型的情况下,很难给出精确的语法,但如下所示:

代码语言:javascript
运行
复制
DispensaryItem.objects.filter(dispensary__location='Washington', item__product_type__name=category)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27702532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档