PostgreSQLの制限によると、「列の種類に応じて250〜1600」です。表の下の注を参照してください。 PostgreSQLの行は最大8kb(1ページ)の幅で、ページにまたがることができないため、列の種類が影響します。 TOASTがそれを処理するため、列の大きな値は問題ありませんが、使用されるTOASTされていないデータ型の幅によっては、収まる列の数に制限があります。
(厳密には、これはディスク上の行に格納できる列を指します。クエリはこれよりも広い列セットを使用できる可能性があります。これに依存することはお勧めしません。)
列の制限に近づくことを考えている場合でも、おそらく問題が発生します。
スプレッドシートをリレーショナルデータベースにマッピングすることは、世界で最も簡単なことのように思えます。列を列に、行を行に、そして移動します。右?実際には、スプレッドシートは巨大なフリーフォームモンスターであり、構造を強制せず、非常に扱いにくい場合があります。リレーショナルデータベースは、ロットを処理するように設計されています より多くの行がありますが、コストがかかります。 PostgreSQLの場合、そのコストの一部は、それらの行の幅の制限です。 Joe Userが作成したスプレッドシートに直面する場合、これは実際の問題になる可能性があります。
1つの「解決策」はそれらをEAVに分解することですが、それは言葉では言い表せないほど遅く、扱いにくいです。より良い解決策は、可能な場合は配列、複合型、hstore
を使用することです。 、json、xmlなど。
ただし、最終的には、スプレッドシートを使用してスプレッドシートを分析することが最善の答えとなる場合があります。