Python Django查询优化:是否可以在组中检索值?
我有: 我在想:有没有可能用一种更好的方式Python Django查询优化:是否可以在组中检索值?,python,django,django-queryset,django-orm,Python,Django,Django Queryset,Django Orm,我有: 我在想:有没有可能用一种更好的方式 编辑:也许我没有很好地解释我自己。我需要有3个不同状态的列表。如果我只执行一个查询,那么我将不得不在列表上循环生成三个新列表,但是如果列表很长,那不是效率低下吗?看看Django Q对象 从django.db.models导入Q Node.objects.filter(Q(状态='a')| Q(状态='p'| Q(状态='h')) 资料来源: 看看Django Q对象 从django.db.models导入Q; Node.objects.filte
编辑:也许我没有很好地解释我自己。我需要有3个不同状态的列表。如果我只执行一个查询,那么我将不得不在列表上循环生成三个新列表,但是如果列表很长,那不是效率低下吗?看看Django Q对象
从django.db.models导入Q代码>
Node.objects.filter(Q(状态='a')| Q(状态='p'| Q(状态='h'))
资料来源:
看看Django Q对象
从django.db.models导入Q;
Node.objects.filter(Q(状态='a')| Q(状态='p'| Q(状态='h'))
资料来源:
更好的是,在
中使用:
active = Node.objects.filter(status = 'a')
potential = Node.objects.filter(status = 'p')
hotspot = Node.objects.filter(status = 'h')
评论后编辑不知道为什么效率会很低。也许一个改进是添加。order\u by('status')
,这样您可以得到一个有序的查询集,然后在迭代时进行拆分。这可能是一个微优化。更好的是,在中使用:
active = Node.objects.filter(status = 'a')
potential = Node.objects.filter(status = 'p')
hotspot = Node.objects.filter(status = 'h')
评论后编辑不知道为什么这样做效率低下。也许一个改进是添加。order\u by('status')
所以你得到一个有序的查询集,然后在迭代时分割。这可能是一个微观优化。也许我没有很好地解释我自己。我需要有3个具有3种不同状态的列表。如果我只执行1个查询,那么我将不得不循环列表以生成3个新列表,但如果列表很长,那不是没有效率的客户端?也许我没有很好地解释我自己。我需要有3个具有3种不同状态的列表。如果我只进行1次查询,那么我将不得不循环列表以生成3个新列表,但是如果列表很长,这不是效率低下吗?