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

PostgreSQL選択クエリの最大列数はいくつですか

    PostgreSQLの制限によると、「列の種類に応じて250〜1600」です。表の下の注を参照してください。 PostgreSQLの行は最大8kb(1ページ)の幅で、ページにまたがることができないため、列の種類が影響します。 TOASTがそれを処理するため、列の大きな値は問題ありませんが、使用されるTOASTされていないデータ型の幅によっては、収まる列の数に制限があります。

    (厳密には、これはディスク上の行に格納できる列を指します。クエリはこれよりも広い列セットを使用できる可能性があります。これに依存することはお勧めしません。)

    列の制限に近づくことを考えている場合でも、おそらく問題が発生します。

    スプレッドシートをリレーショナルデータベースにマッピングすることは、世界で最も簡単なことのように思えます。列を列に、行を行に、そして移動します。右?実際には、スプレッドシートは巨大なフリーフォームモンスターであり、構造を強制せず、非常に扱いにくい場合があります。リレーショナルデータベースは、ロットを処理するように設計されています より多くの行がありますが、コストがかかります。 PostgreSQLの場合、そのコストの一部は、それらの行の幅の制限です。 Joe Userが作成したスプレッドシートに直面する場合、これは実際の問題になる可能性があります。

    1つの「解決策」はそれらをEAVに分解することですが、それは言葉では言い表せないほど遅く、扱いにくいです。より良い解決策は、可能な場合は配列、複合型、hstoreを使用することです。 、json、xmlなど。

    ただし、最終的には、スプレッドシートを使用してスプレッドシートを分析することが最善の答えとなる場合があります。



    1. カウントにギャップを残してプライマリを自動インクリメント

    2. 1日を日時フィールドに一致させるにはどうすればよいですか?

    3. JDBC ResultSetは、テーブルエイリアスを持つ列を取得します

    4. SQLステートメントによる順序に右括弧がありません