2

SOに関する多くの質問を見て、データベースで巨大なテーブルをどのように定義するかについての意見を求めています....

私はあなたが答えたのを見ました>= 1 billion of rows、など..

いくつかの調査を行い、 Wegman と Solkaに従って、10^10 を超えるエントリを持つ巨大なテーブルを分類します

私の質問はcolumns、テーブル内の数を参照しています。1,000列が非常に多くの数であることは知っています (私たちが持っていると仮定します1 billion rows)...

  • 列と行に応じてテーブルが巨大になる時期を測定または記述している論文を知っていますか?
4

1 に答える 1

1

SQL Serverに関する限り、通常のテーブルの列制限は 1,024 です。したがって、その制限に近づいている列の数は大きいと見なします。つまり、幅の広いテーブルを使用して制限を 30,000 まで拡張できますが、トレードオフがあります。

幅の広いテーブルは、列セットを定義したテーブルです。幅の広いテーブルでは、スパース列を使用して、テーブルに含めることができる列の合計を 30,000 に増やします。インデックスと統計の数も、それぞれ 1,000 と 30,000 に増えています。ワイド テーブル行の最大サイズは 8,019 バイトです。したがって、特定の行のほとんどのデータは NULL である必要があります。テーブルをワイド テーブルに作成または変更するには、列セットをテーブル定義に追加します。ワイド テーブル内の非スパース列と計算列の最大数は 1,024 のままです。

幅の広いテーブルを使用すると、アプリケーション内で柔軟なスキーマを作成できます。いつでも列を追加または削除できます。幅の広いテーブルを使用すると、実行時およびコンパイル時のメモリ要件が増加するなど、固有のパフォーマンス上の考慮事項があることに注意してください。

このスレッドによると、PostgreSQL の制限はテーブルあたり 1,600 列です。

これらの数値に基づいて、1,000 に近づく任意の数の列を巨大であると提案します。

于 2011-07-22T01:54:15.263 に答える