django query获取数据库服务器上的最后n条记录

时间:2017-04-13 15:17:21

标签: python sql django

您好django query get last n records

使用[:n]获取最后n条记录是否是个好主意?我可以在数据库服务器上执行此操作(例如在sql“select top 10”中),而不是在django服务器上吗?

2 个答案:

答案 0 :(得分:1)

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

从数据库服务器本身获取n条记录将比使用django完成here的最后n条记录更有效,因为在这种情况下,总记录会被排序然后被提取,在那些我们正在切割最后n条记录的情况下,如果你可以选择直接在数据库服务器上执行查询,你应该选择使用Django ORM作为Django ORM消耗时间和内存。

  

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

答案 1 :(得分:0)

是的,这很好用。

  

在内部,可以构造,过滤,切片和查询QuerySet   通常在没有实际访问数据库的情况下传递。没有   数据库活动实际发生,直到您做一些评估   查询集。

阅读docs了解更多详情。