2011年7月 4日

[pgsql-jp: 40851] Re: 順番が一定しない

2011/7/4 H.Nakai <nakai@xxxxx>:
>> ページングをする場合には
>> ORDER BY のキーの末尾に ID を含めてください。
> デフォルトで、IDは追加されない仕様だったと思います。
> 昔は表を作成するとデフォルトでIDがレコードの項目に追加(隠し項目)
> されましたが、現在の仕様では明示しないと追加されなかったと思います。
> それにIDを使うのは作法上、良くないと言われた記憶もあります。

ここでの ID は OID のことではなく、
テーブルごとの主キー (PK) のつもりでした。
# 確かに OID をユーザのテーブルで使うのは非推奨です。

> 論理的にしようがないとも思いますが、一定しないのが気になります。
> 負荷分散のときに、同じ結果を返さないということにもなりそうですね。

たぶんそれは逆で、一定にするために計算コストを払う必要があります。
普通にソートしても、ctid (物理位置) を隠しキーで使っていたりしますし。
Top-N ソートは、そのあたりの動作をあえて「未定義」にすることで、
速度を稼いでいるんだと思いますよ。

--
Itagaki Takahiro

投稿者 xml-rpc : 2011年7月 4日 14:43
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/104865
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。