【问题标题】:django query get last n records on database serverdjango查询获取数据库服务器上的最后n条记录
【发布时间】:2017-04-13 15:17:21
【问题描述】:

您好,django query get last n records

使用 [:n] 获取最后 n 条记录是个好主意吗?我可以在数据库服务器上做吗(例如在 sql "select top 10" 中),而不是在 django 所在的服务器上?

【问题讨论】:

  • 那个正在在数据库中运行。

标签: python sql django


【解决方案1】:

我认为对于数据库中的小记录说 1k 记录,使用 django query get last n records 很好,但对于表中的大记录说 1M 行,这不是最好的方法。

从数据库服务器本身获取 n 条记录将比 django 完成 here 获取最后 n 条记录更有效,因为在这种情况下,总记录被排序然后获取,并且在这些记录中,如果你有一个选择直接在数据库服务器上执行查询,你应该选择它,而不是使用 Django ORM 作为 Django ORM 是时间和内存消耗。

order_by('?') 查询可能既昂贵又缓慢,具体取决于 您正在使用的数据库后端。 Details here

【讨论】:

    【解决方案2】:

    是的,这很好用。

    在内部,一个 QuerySet 可以被构造、过滤、切片和 通常在没有实际访问数据库的情况下传递。不 数据库活动实际上会发生,直到您执行某些操作来评估 查询集。

    阅读docs了解更多详情。

    【讨论】:

      猜你喜欢
      • 2013-12-31
      • 2021-12-24
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多