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

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

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

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

【问题讨论】:

    标签: sql django django-models django-queryset


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 尝试在该字段上设置索引,看看是否有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多