我从 django 文档中阅读了过滤器和排除,但我想知道我是否会使用以下代码:
Entry.objects.filter(
... headline__startswith='What'
... ).exclude(
... pub_date__gte=datetime.now()
... ).filter(
... pub_date__gte=datetime(2005, 1, 1)
... )
那么,会导致 1 个查询还是 4 个查询?它会先查询并获取所有对象,然后在从 mysql/db 获取所有记录后进行过滤和排除,还是全部在 mysql/db 级别完成。因为如果它不在数据库级别上完成,那么它可能会导致性能问题。这就是为什么我想知道这将过滤和排除应用程序级别或数据库级别的工作?