外部のサードパーティ プログラムを使用してデータベースをリアルタイムで mysql にエクスポートし、レポート用にデータを表示したいと考えています。リアルタイムで同期しているので、構造を変更することはできません。
テーブル構造はこんな感じ
ID | Date | Transaction
-----------------------------
12 | 2012-11-01 | 200
12 | 2012-11-02 | 250
12 | 2012-11-03 | 150
12 | 2012-11-04 | 1000
12 | 2012-11-05 | 225
....
13 | 2012-11-01 | 175
13 | 2012-11-02 | 20
13 | 2012-11-03 | 50
13 | 2012-11-04 | 100
13 | 2012-11-05 | 180
13 | 2012-11-06 | 195
データは非常に大きく、毎日大きくなっています。
私がやりたいことは、次のようなものに基づいてレポート (ビュー テーブル) を作成することです。
ID | Date | Transaction | Prev Day Transaction
----------------------------------------------------
12 | 2012-11-01 | 200 | 0
12 | 2012-11-02 | 250 | 200
12 | 2012-11-03 | 150 | 250
12 | 2012-11-04 | 1000 | 150
12 | 2012-11-05 | 225 | 1000
....
13 | 2012-11-01 | 175 | 0
13 | 2012-11-02 | 20 | 175
13 | 2012-11-03 | 50 | 20
13 | 2012-11-04 | 100 | 50
13 | 2012-11-05 | 180 | 100
13 | 2012-11-06 | 195 | 180
高速な選択ステートメントを取得できません。現在、元のデータはすでに 283,120 行です。そして、毎日500行のように成長します。
私は次のようなことを試しました:
SELECT *, (SELECT transaction FROM table as t2 WHERE t1.id=t2.id
AND t1.date>t2.date ORDER BY t2.date DESC LIMIT 0,1)
FROM table AS t1
動作していますが、選択ステートメントは非常に遅いです。ほとんどの場合、操作の途中で切断されます。
私が助けを必要としているのは、後でビュー テーブルを作成するために使用できる非常に高速な SQL ステートメントです。