[pgsql-jp: 37448] Re: SQLの実行速度について
Hisakazu Nakai
nakai @ shinko.co.jp
2006年 8月 22日 (火) 13:44:32 JST
中井です。
ちょっとダサいですが、毎晩、最新フラグの立っている行のIDを
IDと日付だけの別の表にログをとる方法もあるかと思います。
Yoshio Kano wrote:
>> 更新の頻度がわからないのですが、最新データにフラグを付ける手も
>> あるんではないかと思ったのですがいかがでしょうか。
>> 最新のフラグを付けてinsertする前に、既存の最新のフラグを落とす
>> (update)するだけなので、そんなにコストも掛からないのではないか
>> と思います。もちろん最新フラグと商品IDにインデックスをつけます。
>
> 更新の頻度は高くありませんので、私も構造的に同様の事を考えました。
> 先に示しているSQLでWHERE句を指定すると検索速度が劇的に
> 速くなるという現象がありましたので。
> ※もちろんWHERE句の内容にもよります。
> SELECT ... FROM
> (SELECT MAX(id) AS id,itemid FROM history WHERE status=0
> GROUP BY itemid ) AS t1
> LEFT JOIN history AS t2 ON (t2.id = t1.id)
>
> ただ、クライアントより過去の日付の時点での状態をスナップショット
> のように見たい!という要望がありまして・・・(涙)
> この方法だと最新のデータには有効ですが、過去の時点での最新データ
> 検索時には適用できなくなってしまいます。
--
-=-=-=-= SHINKO ELECTRIC INDUSTRIES CO., LTD. =-=-=-=-
=-=-=-=- Research & Development Div. -=-=-=-=
-=-=-=-= Infomation Technology Research Dept. =-=-=-=-
=-=-=-=- Name:Hisakazu Nakai TEL:026-263-3922 -=-=-=-=
-=-=-=-= Mail:nakai @ shinko.co.jp FAX:026-263-4562 =-=-=-=-
pgsql-jp メーリングリストの案内