Django中的查询优化
Posted
技术标签:
【中文标题】Django中的查询优化【英文标题】:Query optimization in Django 【发布时间】:2015-07-13 02:00:46 【问题描述】:您好,我有一个类似这样的数据库查询
qset = Database_View.objects.filter(xx__name__icontains=tata)
qset = qset.filter(xx__name__icontains=dada)
qset = qset.filter(xx__name__icontains=papa)
我怎样才能把它变成一个单一的查询?
【问题讨论】:
Database_View.objects.filter(xx__name__icontains=tata).filter(xx__name__icontains=dada).filter(xx__name__icontains=papa)
查询集是惰性的。它已经是一个查询。
@MarkGalloway 是对的。在您使用之前,您的查询集不会被评估。
如果您正在寻找一个单一的班轮,只需将所有内容放在一个filter
子句下,以,
分隔
【参考方案1】:
这已经是一个查询,因为 django 为我们提供了在查询集中延迟加载的功能。因此,在您的数据库中,只有一个选择查询来获取结果。你可以阅读更多关于django的延迟加载here
【讨论】:
请不要只在此处发布链接。提供充分的答案以上是关于Django中的查询优化的主要内容,如果未能解决你的问题,请参考以下文章