更好的方法从 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 个项目的主要内容,如果未能解决你的问题,请参考以下文章