Wenn ich habe:django schnellste Anforderung zwischen Abfrage und Sub-Abfrage
class Record(models.Model):
start_time = models.Integerfield() Timestamp
Und in einer Ansicht möchte ich über die Tage zwischen Startdatum und Enddatum iterieren.
Ist es schneller zu tun:
records = Record.objects.filter(
start_time__gte=dt.datetime.timestamp(start_date),
start_time__lt=dt.datetime.timestamp(end_date)
)
for start_day, stop_day in days_between_start_and_end_date:
records_week = records.filter(
start_time__gte=dt.datetime.timestamp(start_day),
start_time__lt=dt.datetime.timestamp(stop_day)
)
oder direkt
for start_day, stop_day in days_between_start_and_end_date:
records_week = Record.objects.filter(
start_time__gte=dt.datetime.timestamp(start_day),
start_time__lt=dt.datetime.timestamp(stop_day)
)
In der Tat habe ich versucht und keinen Unterschied sehen konnte, aber ich verstehe nicht, warum für mich, weil ich tue, eine große Anfrage im ersten Fall und viele kleine im zweiten Fall. Irgendeine Idee warum?
Denken Sie daran, dass Abfragesätze faul sind. Keines dieser Beispiele führt irgendwelche Abfragen aus. – knbk