提高向许多人写入Django queryset的性能
我有一个Django 1.11应用程序。有一个模型活动,我可以指定参数来选择用户。运行活动时,我使用FK提高向许多人写入Django queryset的性能,django,many-to-many,django-queryset,Django,Many To Many,Django Queryset,我有一个Django 1.11应用程序。有一个模型活动,我可以指定参数来选择用户。运行活动时,我使用FKcompaign\u id和M2Musers创建一个活动运行实例。每次运行活动时,结果查询集中可能会有不同的用户,因此我想保留一个记录。我这样做如下所示: run = CampaignRun.objects.create(campaign=self, ...) (...) filtered_users = User.objects.filter(email__in=us
compaign\u id
和M2Musers
创建一个活动运行实例。每次运行活动时,结果查询集中可能会有不同的用户,因此我想保留一个记录。我这样做如下所示:
run = CampaignRun.objects.create(campaign=self, ...)
(...)
filtered_users = User.objects.filter(email__in=used_emails)
run.users.add(*filtered_users) # I also tried run.users.set(filtered_users)
run.save()
但是,如果活动是从django admin运行的,并且产生的用户数超过大约150,则该过程需要30秒以上,这将导致错误502:坏网关
在我看来,150是获得超时的低得离谱的数字,所以我相信一定有足够的空间来优化流程。我可以做些什么来改进这个过程?我在Django有什么选择?您是否建议使用完全不同的方法(例如nosql) 你知道哪个确切的查询需要那么多时间吗。MB值得使用调试工具栏检查吗?认为