在Django中,通常执行以下操作
MyModel.objects.filter(id__in=[huge array])
但是,效率不是很高,如下面的答案所述:https://dba.stackexchange.com/questions/91247/optimizing-a-postgres-query-with-a-large-in
鉴于您正在使用ORM,在Django中复制上述答案的一种好方法是什么。还是您必须将整个查询下拉至原始sql。
我要寻找的是如果您有一个查询集,是否有一种很好的方法将该查询集与您创建的临时表(可能在原始sql中)结合在一起。
答案 0 :(得分:0)
您可以使用select_related选项来过滤将起到in
效果的第二个表(另一个模型)。
类似这样的答案:Django select_related filter
在可能的情况下,我会将其用于大型IN
。