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

一時ファイルのブロックを書き込めませんでした...デバイスにスペースが残っていません...postgresqlを使用してエラーが発生します

    わかった。まだいくつかの事実が欠けているので、おそらく問題を明確にするために答える試み:

    ディスク容量が不足しているようです。ディスクに十分なスペースがないことが原因である可能性があります。 Linux / Unix df -hを確認してください 例えば。

    これがどのように発生するかを示すために、おそらく3つの整数を持つテーブルがあると、データだけで約12バイトを占有します。行管理などのために、それにオーバーヘッドを追加する必要があります。別の回答 アーウィンは23Byteについて言及し、詳細についてはマニュアルにリンクしています。また、行の間にパディングなどが必要になる場合があります。少し計算してみましょう。

    3つの整数を使用しても、1行あたり約40バイトになります。 8,000,000を挿入したかったことを念頭に置いて、これは合計で320,000,000バイトまたは約300MBになります(3つの整数の例のみで非常に大まかに)。

    これで、このテーブルにいくつかのインデックスができました。インデックスは挿入中にも大きくなります。また、別の側面として、テーブルとインデックスの肥大化があり、バキュームでクリアできる可能性があります。

    だから解決策は何ですか:

    1. データベースにより多くのディスク容量を提供します
    2. インサートをもう少し分割して、それらの間で真空が作動していることを確認します


    1. 続編でpostgresqljson/ jsonbフィールドを宣言する方法は?

    2. データをHerokuにプッシュするときのエラー:タイムゾーンの変位が範囲外です

    3. シンプルだが重いアプリケーションは多くのリソースを消費します。最適化する方法は?

    4. データベースデザイナは何をしますか?