簡體   English   中英

Django queryset以字典運行緩慢

[英]Django queryset to dict running slow

我正在Django中查詢對象,然后為這些對象創建字典理解。 當我進行速度測試時,即使只查詢104個對象,該功能也要花費0.9秒鍾。 這么長時間的代碼是什么? 我正在使用DEBUG = False運行,並嘗試使用values_list()。 另外,我正在使用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_related查詢它們。 或者,如果您使用的是ManyToMany字段,則可以將它們稱為與預取相關。

我猜這些優化可以很好地改善您的性能。

您可以從django官方文檔中檢出: prefetch_relatedselect_related

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM