mysql - Django: Date range query performance problem -
on mysql backend, django converts filter(date__year=2011) ... date between 2011-01-01 00:00:00 , 2011-12-31 23:59:59.99 in sql, takes 3 seconds execute. if manually remove time part , run ... date between 2011-01-01 , 2011-12-31, execution time drops 1/100 30 msec.
it seems there fundamental problem how date range queries interpreted. ideas around this?
if cannot find way using django orm, add year field model store year , query on integer year field.
thank time.
p.s: restrictions beyond control, environment django 1.1. may fixed or better optimized in newer versions of django.
have tried range? looks django's generated sql equal raw sql. works 1.1
.filter(date__range(datetime.date(2011,1,1), datetime.date(2011,12,31))
equivalent to:
select ... date between '2011-01-01' , '2011-12-31';
Comments
Post a Comment