如果我们想衡量效率,那么我们必须首先考虑查询。因为两者都在做列表理解,而我们与之无关。
现在如果我们来到
queryset.filter
和
queryset.get
并尝试理解等效的SQL查询。
-
SQL查询计数:用于
filter
只有一个查询,但对于
get
会有的
n
查询次数。即使
N
是2,
滤器
它的效率比
收到
.
-
执行效率:这个也依赖于SQL查询。因为作为
收到
实现称它将创建查询并每次执行。但是
滤器
将创建一个查询并执行一次。跨国执行(对数据库进行查询)总是比在代码中执行慢。
您可以看到
queryset。滤器
通过打印
query
它的属性。
我想
滤器
它的效率比
收到
在这种情况下。