C.J.Dateに倣って、重複行があろうとなかろうと、selectには常に distinct を付けるというやり方でイケルのかどうか、試してみた。 動的にSQL文を組み立てる場合、必要な時だけ distinct を付加するのが面倒くさいので、付けっぱなしにできるとありがたいので。 対象は PostgreSQL7.3.6 と MySQL4.0.20。 ちょっと古いけど。 結論 要らないdistinctは付けないほうがよいという、やっぱりな結果になりました。 PostgreSQL PostgreSQL7.3.6は、distinctを付けると、重複排除の必要がない場合でも、正直に重複排除処理を行う。 だから、distinct は、必要な時以外は付けないほうがよい。 テストDBのテーブル customer には、主キー customer_id があり、顧客データが3万件弱入っている。 インデックス