公式ドキュメント( http://www.postgresql.org/docs/9.1/static/datatype-character.html )では、text
フィールドはvariable unlimited length
。
このフィールドのデフォルトサイズ(またはフィールドの最小サイズ)は何ですか?
text
列(NULL
値を表す)のデフォルト最小サイズは、残りの行によって異なります。 NULLビットマップに別のビットのためのスペースがある場合、ほとんどの場合、それは完全に解放されます。
有効な行サイズの計算の詳細:
デフォルトでは、テーブル定義でデフォルトの制約を指定しない限り、そのような列はNULL(長さゼロの文字列とNULLには違いがあることに注意してくださいが、長さがゼロです)であり、挿入時に必要に応じて増加しますデータ。
ディスクにどれだけのスペースが必要かを尋ねている場合、これは決して完全にゼロになることはありませんが、最小サイズが本当に重要な場合はほとんどありません(非常に短い、またはほとんどがNULLのテキストフィールド。 postgresのストレージエンジンがMSSQLと異なる構造を使用していると仮定すると、それらがページ外に格納されている場合(小さい値はページ内に格納される可能性が高い)、文字列の先頭を見つけるためのページ参照(8バイト?)があります。 -そのため、そのようなタイプの最小フットプリントとして、NULLビットマップ内のスペースと、ページ内またはページ外などの他のフラグのスペースを考慮するとよいでしょう。