Python Django MySQL加入以提高性能
我在找医疗用品 我有10个区域,每个区域有10张桌子,每个桌子包含药房,还有10张桌子,每个桌子包含药房可用的医疗物品 现在我正在所有这些药房中寻找一种药品 对于每个区域,我都会得到对象Python Django MySQL加入以提高性能,python,mysql,django,performance,django-queryset,Python,Mysql,Django,Performance,Django Queryset,我在找医疗用品 我有10个区域,每个区域有10张桌子,每个桌子包含药房,还有10张桌子,每个桌子包含药房可用的医疗物品 现在我正在所有这些药房中寻找一种药品 对于每个区域,我都会得到对象 a_list = Washington_dispensaries.objects.all() 然后,我正在搜索每个药房是否都有这一特定项目 if category: a_lists = [] for dispensary in a_list: items = dispens
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连接来加快查询速度。现在我如何更快地查询 您已经在做两个连接,到项目和产品类型。因此,只需再做一件事:与其单独获得药房,不如将其作为过滤器的一部分。在不查看模型的情况下,很难给出准确的语法,但类似于:
DispensaryItem.objects.filter(dispensary__location='Washington', item__product_type__name=category)