インラインで保存されたフィールドのみをコピーする必要があります。 TOASTテーブルにオフラインで格納されているフィールドの場合、TOASTエントリへの参照のみがコピーされます。
フィールドがオフラインで保存されるかどうかは、フィールドの値のサイズとフィールドのデータ型によって異なります。
タプルが大きいが、フィールドが少ない場合-
some_id integer,
frequently_updated integer,
charblob text
frequently_updated
の更新は、何も変更する意味がありません。 通常、charblob
のデータは書き換えられません 、少なくともそれが気にかける価値があるほど十分に大きい場合。
OTOH、たくさんのフィールドがあるテーブルがある場合は、更新するたびにもっとたくさん書き直すことになります。
HOTの更新は、更新された列がインデックスの一部ではない場合にのみ発生する可能性があるため、HOTは限られた範囲でしか役に立ちません 同じデータベースページに十分な空き容量があります。幅の広い行の場合、TOASTを使用してもページに多くのコピーを収めることができないため、HOTのメリットは限られています。
本当に頻繁に更新されるが、テーブルの残りの部分にはあまり変更されない幅の広い行がある場合は、そのようなフィールドを別々のテーブルに分割する価値があります。