Python 什么';这是从具有特定ID的大表中获取多个项目的最佳方法
我需要使用Django对一个有数百万行的Postgres表进行查询,并需要选择几百个具有特定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”上有一个索引,但查询速度
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倍,非常感谢