1

mariadb 列ストアに数千行の幅の広いテーブルを作成したいと考えています。ストレージ エンジンで許可される列の最大数に関するドキュメントは見つかりませんでした。また、1000 個の整数列の列ストアのパフォーマンスはどうなるか知りたいですか?

4

2 に答える 2

1

(警告: この「回答」は、「事実」ではなく、設計に関する私の理解に基づいています。)

テーブルのディスク フットプリントは、列の数に比例する必要があります。

MariaDB のほとんどの場合と同様に、列数にはおそらく厳しい制限がありますが、1000 未満にする理由は思い浮かびません。代わりに、2 の累乗を大きくする必要があります。

少数の列のみを参照する場合、表にいくつの列があるかは重要ではありません。データが構造化されている方法では、比較的一定の労力で各列をフェッチできる必要があります。

フィルタリングの場合、フィルタリングに使用される列の数とその分布に応じて、労力がかかると思います。句が多くの列を参照する場合、WHERE良いパフォーマンスは期待できません。

どのエンジンでも、多数の列を持つことは必ずしも賢明な設計ではありません。一般に、フィルタリングまたはソート ( WHEREORDER BY) に使用されない列が多数ある場合は、それらを JSON 文字列 (または他の構造) に放り込んで、単一のTEXTまたはBLOB列として保存することもできます。次に、アプリケーションで文字列を解析して個々の列を取得します。

列ストアは「フィルタリング」に優れています。また、データの圧縮にも非常に優れており、JSON の提案はこれを無効にします。しかし今、非常にデータ固有の速度と容量のトレードオフに陥っています。

提案されたデータセットについて説明していただけますか?

于 2018-05-24T14:40:03.387 に答える