>小さなテーブルでは、使うとかえってパフォーマンスが落ちることもある?
そうそう。これを問題にしたかったわけでして.....www)
http://blogs.wankuma.com/ognac/archive/2007/06/19/81258.aspx
主キーに限らずキーがあるということはデータベースに対して
インデックスサーチ(DB用語ではない)
データリード
と2回のナイスな読み込みを実施します。
突き詰めていけば1行1列しかないであったり、常にwhereなしで読み取るかつ十分に小さい。(ここはDBMSの実装によりけり)場合には主キーはデメリットです。
キーと値の接手であるにもかかわらずユニーク制約だけにした方が高速です。(INSERTのときの制約チェックの遅さなどが問題になりえるのですが、上記の前提でいくなら本来固定値やシステム保持値など)
ということで、主キーは使うな!! という局面もちょびっとだけ存在します。