Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';这是从具有特定ID的大表中获取多个项目的最佳方法_Python_Django_Postgresql - Fatal编程技术网

Python 什么';这是从具有特定ID的大表中获取多个项目的最佳方法

Python 什么';这是从具有特定ID的大表中获取多个项目的最佳方法,python,django,postgresql,Python,Django,Postgresql,我需要使用Django对一个有数百万行的Postgres表进行查询,并需要选择几百个具有特定ID的项(或另一个具有索引的字段)。现在我是这样做的: A\u query\u filter=Q(项\u id=None) 对于批次id中的批次id: A_query_filter=A_query_filter | Q(物料标识=批次标识) A=Item.objects.filter(A_query_filter).order_by('-added') 尽管我在“item_id”上有一个索引,但查询速度

我需要使用Django对一个有数百万行的Postgres表进行查询,并需要选择几百个具有特定ID的项(或另一个具有索引的字段)。现在我是这样做的:

A\u query\u filter=Q(项\u id=None)
对于批次id中的批次id:
A_query_filter=A_query_filter | Q(物料标识=批次标识)
A=Item.objects.filter(A_query_filter).order_by('-added')
尽管我在“item_id”上有一个索引,但查询速度相当慢。有没有更有效的方法可以做到这一点?

也许正是您想要的:

Item.objects.in_bulk(批处理\u id,字段\u name='Item\u id')
请注意,
in_bulk
返回一个dict

UPD: 您还可以查询:

Item.objects.filter(Item\u id\u in=batch\u id).order\u by('-added')

谢谢,我现在就接受答案,因为它看起来更优雅,但如果查询速度更快,我真的很感兴趣。使用第二种方法会快2倍,非常感谢