Python Django queryset到dict运行缓慢

Python Django queryset到dict运行缓慢,python,django,postgresql,dictionary,django-queryset,Python,Django,Postgresql,Dictionary,Django Queryset,我在Django中查询对象,然后为这些对象创建字典理解。当我进行速度测试时,该函数需要0.9秒,即使它只查询104个对象。什么让代码这么长时间?我使用DEBUG=False运行,并尝试使用值列表。另外,我正在使用postgresql @speed_test def find_user_fc_ids(user_id=1): try: flavor_compounds = UserFlavorCompound.objects.filter(user_id__in=user_i

我在Django中查询对象,然后为这些对象创建字典理解。当我进行速度测试时,该函数需要0.9秒,即使它只查询104个对象。什么让代码这么长时间?我使用DEBUG=False运行,并尝试使用值列表。另外,我正在使用postgresql

@speed_test
def find_user_fc_ids(user_id=1):
    try:
        flavor_compounds = UserFlavorCompound.objects.filter(user_id__in=user_id)
        return {flavor.flavor_id: flavor.score for flavor in flavor_compounds}
    except UserFlavorCompound.DoesNotExist:
        flavor_compounds = UserFlavorCompound.objects.filter(user_id__in=1)
        return {flavor.flavor_id: flavor.score for flavor in flavor_compounds}

也许你应该检查一下你的模型。如果您使用ForeignKey,您可能会使用select\u related查询它们。或者如果你使用了很多字段,你可以用预取相关的方法调用它们

我想这些优化可以很好地提高性能


您可以从官方django文档中查看:和。

尝试了以下方法:flavor\u components=userflavorcomponent.objects.filteruser\u id\u in=user\u id,它仍然需要相同的时间:这只是函数中的代码本身,我将对其进行编辑以显示我拥有的内容