繰り返し使用しているタイプのクエリのパフォーマンスに苦労しています。どんな助けでも大歓迎です。
次の表があります。
item week type flag value
1 1 5 0 0.93
1 1 12 1 0.58
1 1 12 0 0.92
1 2 6 0 0.47
1 2 5 0 0.71
1 2 5 1 0.22
... ... ... ... ...
(完全なテーブルには、約 10,000 の異なるアイテム、200 週間、1,000 の種類があります。フラグは 0 または 1 です。合計で約 20M 行です)
次のクエリを最適化したいと思います。
select item, week,
sum(value) as total_value,
sum(value * (1-least(flag, 1))) as unflagged_value
from test_table
where type in (5,10,14,22,114,116,121,123,124,2358,2363,2381)
group by item, week;
現在、最速で取得できるのは、(タイプ、アイテム、週) およびエンジン = MyIsam のインデックスを使用することでした。(標準のデスクトップで mysql を使用しています)。
何か提案はありますか (指数、再編成など) ?