PostgreSQLデータベースにタイプ bytea の列があります。
行を更新した場合、いくつかの小さなステップでデータをbytea列にチャンクすることは可能ですか?
1つのbyteaエントリのサイズは、ほとんどが200MByte未満になります。
チャンクは約1Mバイトになります。
Psycopg2とPythonを使用してデータベースにアクセスします。
これは PostgreSQLにHTTP応答を保存する のフォローアップ質問です。
行を更新した場合、いくつかの小さなステップでデータをbytea列にチャンクすることは可能ですか?
はい、可能です。しかし、それは恐ろしい考えです。 PostgreSQLおよびすべてのMVCCデータベースは、更新のたびに新しい行を書き込むため、最後のチャンクでは1MBではなく200MBを書き込みます。
large_objects を検討してこれを回避するか、データベースはファイルシステムではないため、データベースを使用せず、代わりにIOバッファまたはファイルシステムの書き込みキャッシュ。データベース内のデータにリンクする必要がある場合は、path
を試してください(内部的にはファイルシステムがinodesを使用します)。必要に応じてbtrfsまたはzfsを確認してください。ファイルシステムのPostgreSQL。
適切な仕事をしている場合、PostgreSQLはその仕事に最適なツールですが、どの仕事にも最適なツールではありません。