MySQL バックエンドでは、Django は in SQL に変換filter(date__year=2011)
し... WHERE date BETWEEN 2011-01-01 00:00:00 and 2011-12-31 23:59:59.99
ます。実行には 3 秒かかります。時間の部分を手動で削除して として実行すると... WHERE date BETWEEN 2011-01-01 and 2011-12-31
、実行時間が 1/100 ~ 30 ミリ秒低下します。
日付範囲クエリの解釈方法に根本的な問題があるようです。これを回避するためのアイデアはありますか?
Django ORM を使用する方法が見つからない場合は、モデルに年フィールドを追加して年を格納し、その整数年フィールドに対してクエリを実行します。
お時間をいただきありがとうございます。
ps: 私の手に負えない制限のために、環境は Django 1.1 です。これは、Django の新しいバージョンで修正されるか、より適切に最適化される可能性があります。