更好的方法从 django 的数据库中检索最近的 10 个项目

Posted

技术标签:

【中文标题】更好的方法从 django 的数据库中检索最近的 10 个项目【英文标题】:betterway to retrieve recent 10 items from database in django 【发布时间】:2012-05-16 19:11:42 【问题描述】:

我使用下面的查询从我的数据库中检索 10 个项目

    itemobjects = Items.objects.all()[:10]

有没有更好的方法来做到这一点?因为当我的数据库中的项目数量增加时,上述查询非常慢,大约需要 1-2 秒

【问题讨论】:

【参考方案1】:

这根本不需要很长时间,即使在大桌子上也是如此。您是否在模型的 Meta 类上定义了默认排序?也许它默认在一个非索引字段上排序,这将是您看到速度变慢的一个原因。

无论如何,要获取最新条目,请按主键排序(保证被索引):

itemobjects = Items.objects.all().order_by('-pk')[:10]

/edit:只是一个提示:给模型类命名是一种惯例,例如Item 而不是 Items

【讨论】:

尝试在该字段上设置索引,看看是否有帮助

以上是关于更好的方法从 django 的数据库中检索最近的 10 个项目的主要内容,如果未能解决你的问题,请参考以下文章

从 Firebase 为每个特定帖子检索特定数据的比 datasnapshot 更好的方法?返回的位置错误

检索字典值最佳实践

如何从数据库中获取最近的位置条目?

JS 代码不适用于从 Django 模型中检索到的所有数据

Django:在创建最后一个帖子时检索活动线程

Django 从三个表中检索数据