【发布时间】:2015-11-01 19:55:39
【问题描述】:
我的 Django 应用程序中有一个使用简单历史记录 (https://github.com/treyhunner/django-simple-history) 的 Location 对象,我需要经常查询该对象以了解其在两个日期之间的历史记录。我知道你可以这样做:
Location.objects.filter(id=1, history_date__range=(starttime, endtime))
但是,我注意到给定 ID 的所有历史记录都是从最新到最早排序的。这意味着我应该能够对该列表进行二进制搜索以获取所有日期。
我的问题是——之后是否对 python 二进制搜索进行硬编码
Location.objects.filter(id=1)
比仅使用上述查询更快还是更慢?
【问题讨论】:
-
我不知道,但你试过计时吗?
-
我实际上并不知道它是如何工作的,但我敢打赌它会将实际实现放到您使用的任何数据库中。
-
我已经尝试过计时,但我认为我的历史还不够长,无法进行有意义的测量,因为它需要的时间大致相同。 (此时历史只有大约 3000 项,但随着时间的推移会变得更大)。
标签: python django django-queryset