Django SELECT COUNT(*)as" __ count"对于每个查询

时间:2015-12-17 21:14:15

标签: django postgresql django-rest-framework

我目前正在优化我的Django应用程序,该应用程序充当了Django Rest Framework的前端API。在调试模式下运行我的服务器时,我注意到每次执行查询集时,在它之前运行的查询总是如下所示:

SELECT COUNT('*') AS "__count" FROM "table_name WHERE ..."

...部分始终镜像返回我想要的对象的查询。我不确定这是否仅在调试中运行,QuerySet对象天生就是这样,或者我的代码出错。希望了解为什么会发生这种情况,以及是否需要担心

1 个答案:

答案 0 :(得分:2)

当您在列表视图上使用分页时,会在Django Rest Framework中发生这种情况:

  • 获取当前页面数据的一个查询。
  • 计算同一查询集的记录总数的第二个查询。