【发布时间】:2019-01-27 13:49:29
【问题描述】:
我搜索了很多,但没有找到以下问题的答案。我有一张有很多记录的表(大约 100M),我想在上面运行以下查询:
Entity.objects.filter(creation_time__gte=some_date).order_by('id').all()[0]
我的桌子如下:
class Entity(models.Model):
creation_time = models.DateTimeField(null=True, blank=True)
# Other fields
【问题讨论】:
-
我猜输出不应该是精确的,那么为什么不按序列号排序呢?在简单的情况下会给出几乎相同的顺序。之后,如果需要,您可以继续按日期过滤。
-
那应该是
creation_time上的一个简单的B树索引吧? -
我想要在某个特殊时间后创建的对象的最小 ID。我不知道整个对象的最小 ID 是多少
-
@LaurenzAlbe 使用 b_tree 查询仍然非常缓慢,需要数十分钟才能执行
-
请在问题中描述您的任务。不是解决方案。什么是“特殊时间”,为什么是“最低ID”等等。
标签: python django python-3.x postgresql