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

Yoshio Kano kano @ arcadia21.com
2006年 8月 22日 (火) 13:47:24 JST


加納です。

伊東様、お返事ありがとうございます。


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

ですが、私の情報不足でした。申し訳ありません。
各商品毎20,000件 × それぞれに履歴20件 = データ400,000件
となっています。
ですので、(SELECT MAX(id) FROM history GROUP BY itemid)のサブクエリ
を実行した時点で、理論上20,000件のデータが返ってきます。

念のため、EXPLAIN ANALYZE を行いましたが、案の定、結果は
返ってきませんでした・・・。
ちなみに、インデックスは使用されています。

とりあえずご報告です。





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