簡體   English   中英

Django查詢優化:是否可以按組檢索值?

[英]Django query optimization: retrieve values in groups possible?

我有:

active = Node.objects.filter(status = 'a')
potential = Node.objects.filter(status = 'p')
hotspot = Node.objects.filter(status = 'h')

我想知道:是否有可能以更好的方式做到這一點?

編輯:也許我沒有很好地解釋自己。 我需要有3種狀態分別為3的列表。 如果我只執行1個查詢,那么我將不得不遍歷該列表以創建3個新列表,但是如果該列表很長,那會不會效率低下?

更妙的是,使用in

Node.objects.filter(status__in=['a', 'p', 'h'])

評論后編輯不知道為什么這樣效率低下。 也許一種改進是添加.order_by('status')以便獲得有序的查詢集,然后在遍歷時拆分。 雖然可能是微優化。

看看Django Q對象

from django.db.models import Q;

Node.objects.filter(Q(status = 'a') | Q(status = 'p' | Q(status = 'h'))

來源: https : //docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

暫無
暫無

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

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