[pgsql-jp: 37447] Re: SQLの実行速度について

yusuke ito ito.ysk @ gmail.com
2006年 8月 22日 (火) 12:05:25 JST


伊東です。こんにちは

06/08/22 に Kiyoshi Mizuno<kiyoshi_mizuno @ mail.toyota.co.jp> さんは書きました:
> 1.最新のデータが欲しい時
>         (0)フラグを落とす
>         (1)各商品のMAX(ID)にフラグを立てる
>         (2)フラグの立っているレコードを取得する
>
> 2.任意の時点のデータが欲しい時
>         (0)フラグを落とす
>         (1)WHERE句に日付条件を追加して各商品のMAX(ID)にフラグを立てる
>         (2)フラグの立っているレコードを取得する

毎回フラグを立てるのであれば
SELECT * FROM hostory WHERE id IN (SELECT MAX(id) FROM history GROUP BY itemid);
でいいような気がします。LEFT JOINの方が早いんでしょうか?
EXPLAIN ANALYZEしてみてください。インデックス使われますか?



pgsql-jp メーリングリストの案内