[pgsql-jp: 36586] Re: 追記型アーキテクチャについて

ISHIDA Akio iakio @ mono-space.net
2005年 12月 20日 (火) 02:13:42 JST


こんにちは。石田@苫小牧市です。

Masaomi Matsuzawa wrote:
> 松沢と申します。
> 
> 識者の方、教えてください。
> ただ今導入にむけて準備中で、いろいろ情報を集めておりますがどうしても分からずこちらに投稿させていただきました。
> PostgreSQLは追記型のアーキテクチャだと思いますが、これはバッファキャッシュ上でも同じことが言えるのでしょうか?
> たしか行をdeleteしてもフラグ上削除され物理的には削除されず、検索時に余計に削除行を読んでしまうと思うのですがキャッシュ上においても削除フラグのついた行まで展開してしまうのでしょうか?

期待したお答になっているかわかりませんが。
PostgreSQLはテーブルやインデックスなどのデータをページ単位(通常8kb)で
ディスクに読み書きします。キャッシュもこのページ単位で行います。
要するにキャッシュはディスク上の任意の8kbをそのまま
共有メモリ上にもってきたものです。

ページの中には複数の行が含まれているので、キャッシュ内にも
削除済みの行もあればそうでない行もあります。
(当然、ディスクと同じ結果になります)

更新/削除はしているのに全然vacuumされていないスカスカ状態の
テーブルだと、キャッシュのヒット率も低下します。

# という失敗を昔やったことがあります

> というのは設計・チューニングの観点でここまで考慮するべきかどうかなやんでいます。
> 
> #聞いてばかりですいません。
> 
> Masaomi Matsuzawa
> 
> 
> 




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