【发布时间】:2016-10-27 05:53:09
【问题描述】:
我创建了一个 Django 应用程序,一切似乎都运行良好。然后我开始查看 Django 调试工具栏,发现我的一些页面生成了 100 多个查询,其中有很多重复项。但是,页面仍然很流畅,并且执行时间仍然很短,因为我可以想象缓存。
我的问题是,这些大量的查询是一个大问题吗?我是否应该优先考虑减少查询的数量,或者如果我知道 Django ORM 将缓存结果,两次调用相同的查询是否可以。
例如,如果我在模板中多次执行相同的查询,我应该将其作为上下文变量传递还是使用 with 标签将其设置为等于模板中的变量,而不是多次调用它,即使 Django 缓存了结果?
【问题讨论】:
-
太宽泛了,但我感觉您误解了 ORM 缓存的工作原理。为什么不发布一些代码?
-
您应该查看查询需要多长时间而不是查询的数量
-
是的,代码和查询执行被缓存,因此看起来更快。虽然,您需要共享一些代码,因为每个请求 100 个查询似乎有点太高了。
-
基本上我要问的是是否有 500 个查询是否重要,但它在 100 毫秒内执行?我会更新一个例子
-
还是太宽泛了,你是通过查询次数还是其他方式来为你的数据库付费?与谁有关?为了什么? 100 个查询不一定太高,具体取决于页面在做什么
标签: django django-models