[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 メーリングリストの案内