次の表があります。
+---------------------+-------+
| t | price |
+---------------------+-------+
| 2013-04-22 13:23:51 | 9.42 |
+---------------------+-------+
ここで、t はタイムスタンプ型で、価格は float です。
テーブルは大きく、約 500K 行です。
仕事:
テーブルと各行の過去 3 日間の最低価格を表示します。
だから私は次のように書いた:
select *,(
select max(b.price)
from my_table b
where b.t<a.t and date(b.t)>=adddate(date(a.t),-3)
) from my_table a;
問題は、クエリが完了せず、ハングしているように見えることです.... クエリを高速化する方法はありますか? それとも私は何か間違ったことをしましたか?