Python Django queryset到dict运行缓慢
我在Django中查询对象,然后为这些对象创建字典理解。当我进行速度测试时,该函数需要0.9秒,即使它只查询104个对象。什么让代码这么长时间?我使用DEBUG=False运行,并尝试使用值列表。另外,我正在使用postgresqlPython 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
@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,它仍然需要相同的时间:这只是函数中的代码本身,我将对其进行编辑以显示我拥有的内容