如何防止数据库搜索旧对象?
How to prevent database to search for old objects?
我有一个使用 Postgresql 作为数据库的 Django 应用程序。我存储了一些具有日期时间字段的对象。在我的查询中,我通常想获取存储在前一天或上周的对象,因此较旧的对象对我来说并不重要。
我无法删除旧对象,因为有时我想获取所有数据。
我想优化应用。
有没有办法只搜索最后一天存储的数据,而不搜索其他数据?
编辑:
想象一下,有这么多记录,比如 100 万条,而今天只有一小部分记录。如果我使用Model.objects.filter(datetime_field__gte=last_week)
,数据库会检查所有记录吗?
您可以在日期时间字段上查询筛选。
import datetime
last_week = datetime.date.today() - datetime.timedelta(days=7)
Model.objects.filter(datetime_field__gte=last_week)
例如创建一个新的输入查询2
def SearchW(request):
serchedWl = Modal.objects.all()
query1= request.GET.get('query1') #main query
query2= request.GET.get('query2') #last week
if query1:
serchedWl =serchedWl.filter(Q(field__contains=query1))
if query2:
serchedWl =serchedWl.filter(Q(datetime_field__contains=query2))
context={
'title':'your page',
'serchedWl': serchedWl,
}
return render(request,'to your page .html',context)
别忘了标签是 serchedWl
我有一个使用 Postgresql 作为数据库的 Django 应用程序。我存储了一些具有日期时间字段的对象。在我的查询中,我通常想获取存储在前一天或上周的对象,因此较旧的对象对我来说并不重要。
我无法删除旧对象,因为有时我想获取所有数据。
我想优化应用。 有没有办法只搜索最后一天存储的数据,而不搜索其他数据?
编辑:
想象一下,有这么多记录,比如 100 万条,而今天只有一小部分记录。如果我使用Model.objects.filter(datetime_field__gte=last_week)
,数据库会检查所有记录吗?
您可以在日期时间字段上查询筛选。
import datetime
last_week = datetime.date.today() - datetime.timedelta(days=7)
Model.objects.filter(datetime_field__gte=last_week)
例如创建一个新的输入查询2
def SearchW(request):
serchedWl = Modal.objects.all()
query1= request.GET.get('query1') #main query
query2= request.GET.get('query2') #last week
if query1:
serchedWl =serchedWl.filter(Q(field__contains=query1))
if query2:
serchedWl =serchedWl.filter(Q(datetime_field__contains=query2))
context={
'title':'your page',
'serchedWl': serchedWl,
}
return render(request,'to your page .html',context)
别忘了标签是 serchedWl