【发布时间】:2012-01-28 23:47:33
【问题描述】:
我正在使用 django/apache/sqlite3,我有一个看起来像这样的 django 模型:
class Temp_entry(models.Model):
dateTime = models.IntegerField() #datetime
sensor = models.IntegerField() # id of sensor
temp = models.IntegerField() # temp as temp in Kelvin * 100
我正在尝试将最后 300 个 Temp_entry 项目放入图表中。我是这样做的:
revOutsideTempHistory = Temp_entry.objects.filter(sensor=49).order_by('dateTime').reverse()[:300]
但是,此查询需要大约 1 秒。有没有办法改善这一点?我挖了一圈,发现order_by的效率太低了,所以我希望有一个可行的替代方案?
我想到的另一种方法,但不知道如何实现,是每 20 分钟运行一次查询并保持缓存,这也是可以接受的,因为数据可能有点陈旧而没有不良影响.
【问题讨论】:
标签: python django performance sqlite