大規模なデータセットを持つテーブルがあり、このテーブルには削除したい3つのカラムがあります。
質問があります:Postgresはどのように対処しますか?大規模なデータセットでPostgresの列を削除する
すべてのエントリを調べたり、オーバーヘッドをかけずにマッピング情報を更新しますか? ALTER TABLE
を作成することはできますか?またはこの特定のケースでスワップテーブルを使用する必要がありますか?
また、違いがある場合、3つの列はすべて固定長(2つの整数と1つの数値)です。
それはすでに依頼されていた場合、私は申し訳ありませんが、しかし、Googleはすべての関連質問/記事を見つけることができませんでした...
興味深いことに、行の更新によって、削除された列にNULLが「格納」されるようになるためです。 postgresqlはオプションの "ヌルビットマップ"にビットを設定することによってヌルを格納するため、_every_ローは、表示されているローがない場合でもnullビットマップ(ドロップされた8個のカラムまたはドロップされていないカラムごとに1バイトのサイズ)ヌル –