我在找医疗用品
我有10个区域,每个区域有10张桌子,每个桌子都有医务室,还有10张桌子,每个桌子都有医务室提供的医疗用品。
现在我在这些药房里找一个医疗用品
每一个区域,我都会得到物体
a_list = Washington_dispensaries.objects.all()
然后我在查每个药房里是否有这种特殊的东西
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 join加快查询速度。现在我该如何更快地查询。
最佳答案
你已经在做两个连接了,项目和产品类型。所以再做一个:不要把药房分开,而是作为过滤器的一部分。如果不查看模型,很难给出准确的语法,但类似于:
DispensaryItem.objects.filter(dispensary__location='Washington', item__product_type__name=category)
关于python - Django MySQL Join提高性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27702532/