【发布时间】:2018-09-26 11:20:45
【问题描述】:
我正在寻找一种方法来评估 one 数据库命中中的整个 django 查询集。
我将 Django 2.0.8 与 Python 3.6.5 一起使用。
我曾经评估列出它们的查询集:
queryset = Model.objects.all()
# len(connection.queries) = 0
list(queryset)
# len(connection.queries) = 87
len(queryset) = 43
只执行一次数据库命中。但是现在,看起来这对数据库的访问次数超过了 n 次 -n 是查询集的长度 - 当 n 很大,数据库访问成本很高。
谢谢
【问题讨论】:
-
这已经用 one hit 执行了。
-
你有没有“消费”过相关的对象?
-
我用以前的 django 版本做的时候就是这种情况,但现在看起来不像了。查看我的编辑
-
你能看一下
connection.queries吗?例如,分享最后 5 个,看看它们是否不是 related 对象的获取。 -
@WillemVanOnsem 你所说的“消费”相关对象是什么意思?