[pgsql-jp: 41884] Re: 1行のサイズが2KBを超えたときの性能について

TAKATSUKA Haruka harukat @ postgresql.jp
2016年 8月 4日 (木) 16:36:50 JST


インラインでいくつか記載します。

On Thu, 04 Aug 2016 13:19:44 +0900
<michio.kataoka.pmb @ rand.co.jp> wrote:

> ご回答ありがとうございます。片岡です。
> Let's Postgresのページ、とても有り難く読ませていただいています、
> 中の人にご回答いただけて光栄です!

私は沢山記事を書いた人ではないですが、著者のみなさんも
本MLを見ていると思います。

> 2KBはTOASTと行内カラムに纏わるお話だったのですね。
> なんとなくわかってきた気がします。
> 
> ・TOASTが効くので、varchar(N) や numeric などで2KBを超えても問題ない。
>  ただし、TOASTされない行内カラムはそのまま行のサイズを増やしてしまう。
> ・1行当たり8KBを超えると保存できなくなる。
> ・TOASTされた行が全テーブル通算40億に近づくと著しい速度低下を引き起こす。
>  ( https://wiki.postgresql.org/wiki/TOAST/ja> ・行が2KBに収まっていればTOASTが使われないので40億行の制限はない。
> 
> 
> Let's Postgresにある「極端に性能が落ちる場合」について、
> TOASTのカウンタ(OID)の最大値にまつわるものだと理解しました。

私の先のメールは、データの格納効率の低下による性能低下を意図
して書きました。もちろん wiki.postgresql.org の TOAST記事に
書かれている問題もそれはそれで存在します。

# http://lets.postgresql.jp/map/tuning の著者からコメント
# あればお願いします。

> 40億って4byteでしょうか、もうすこし多くてもいい気がしますが
> 検索してもあまりこのお話し出てきませんし、
> 回避方法もいくつかあるので実用上問題無いんでしょうね。。

そうですね。
OID より XID の方が「4byte を 8byte にしようぜ」という話が
定期的にでてきますね。

_________________________________________________________
日本PostgreSQLユーザ会  高塚 遙  http://www.postgresql.jp 



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