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

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -