访问Django中最早的数据库记录的更快方法?

2024-04-24 04:30:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个批处理作业,按最旧记录的顺序处理记录。在django中,我定义了一个与此类似的模型:

class mymodel(models.Model):
    name = models.CharField()
    ...
    last_processed = models.DateTimeField(blank=True, editable=False, null=True)

我需要根据上次处理的日期时间字段获取最早的记录。我知道django的做法是:

^{pr2}$

但是,有没有一种更快更有效的方法来执行该查询?

我预计数据库会增长,因此可能会有1000万条记录。持续运行该查询似乎不是很有效。。。。

系统规范:

  • CentOS 6.0版
  • Python 2.6.5
  • Django 1.3款
  • PostgreSQL 8.4.7版

Tags: djangoname模型truemodel定义顺序models
3条回答

如果您经常根据最后处理的字段进行搜索,则可能值得indexing it

否则你现在做的看起来不错

你有“上次处理”的索引吗?如果是这样,那么无论表的大小,查询都是有效的。在

我想你必须弄清楚它是否低效。如果是,您可以缓存它(将其存储在数据库中,或使用类似memcache的东西)

相关问题 更多 >