私は2つのテーブルを持っています:
- トリップ:id_trip、id_object、trip_date、delta(8980026行)
- 範囲:id_range、id_object、date_since、date_until(18490行)
次のselectステートメントを最適化する必要があります
select r.id_range, sum(t.delta) sum_deltas
from trips t,
ranges r
where t.id_object = r.id_object
and t.trip_date between r.date_since and r.date_until
group by r.id_range
条件に応じて、「範囲」内のトリップに一致する行が常に1つだけ存在します。
- トリップテーブルは常に増え続けていますが、更新や削除はありません
- テーブルの範囲は、任意の方法(削除、更新、挿入)で時々変更される可能性があるため、関数ベースのインデックスは方法ではありません:(
- id_object(両方のテーブル)とdate_since(トリップ)にインデックスがあります
誰かが物事をスピードアップする方法を知っていますか、それも可能ですか?