使用临时表的连接作为Django中"IN"的替代

Jon*_*han 8 python django postgresql django-models django-orm

在Django中,通常会执行以下操作

MyModel.objects.filter(id__in=[huge array])
Run Code Online (Sandbox Code Playgroud)

但是,如下面的答案中所述,效率不高:https://dba.stackexchange.com/questions/91247/optimizing-a-postgres-query-with-a-large-in

鉴于您正在使用ORM,在Django中复制上述答案的好方法是什么.或者你是否必须下拉到整个查询的原始SQL.

我正在寻找的是,如果你有一个查询集,是否有一个很好的方法加入该查询集与您创建的临时表(可能在原始SQL).

Wal*_*cas 0

您可以使用 select_lated 选项来过滤将产生效果的第二个表(另一个模型)in

像这样的答案:Django select_lated filter

IN如果可能的话,我将其用于大型s。