sql >> データベース >  >> RDS >> PostgreSQL

ページレイアウト付きのテーブルサイズ

    計算はいくつかの点でずれています。

    • varcharのストレージサイズ 、text (およびcharacter !)は、マニュアルの引用 です。 ):

    コメントで質問に対処するために大胆に強調します。

    • HeapTupleHeaderは23バイトを占有します 。ただし、各タプル( "item"-行またはインデックスエントリ)にはアイテム識別子があります データページの先頭で、合計で上記の27バイトになります。実際のユーザーデータはMAXALIGNの倍数で始まるため、この区別は重要です。 各アイテムの先頭から、アイテムIDはこのオフセット、および実際の「タプルサイズ」にはカウントされません。

    • データアライメントによる1バイトのパディング(8の倍数)。この場合、NULLビットマップに使用されます。

    • タイプvarcharのパディングなし (ただし、上記の追加バイト)

    したがって、実際の計算(すべての列が最大に入力されている場合)は次のようになります。

        23    -- heaptupleheader
     +   1    -- NULL bitmap (or padding if row has NO null values)
     +   9    -- columns ...
     + 101 
     +   2 
     + 101 
     +   4 
     +  11
    -------------
       252 bytes
    
     +   4    -- item identifier at page start

    関連:

    リンクリストにはさらに多くの情報があります これらの回答の右側にあります。




    1. cx_OracleモジュールAPIを介してfnd_concurrent.wait_for_requestストアド関数を正しく呼び出す方法は?

    2. OracleのJavaストアドプロシージャにjarファイルを含める方法は?

    3. SQLServer2017バックアップ-1

    4. PostgreSQL:特定の文に最も近い文を検索します