web-dev-qa-db-ja.com

カラムナデータベースにはインデックスは不要ですか?

円柱状データベースでは、インデックスは不要ですか、それとも役に立たないのですか?

4
Yoga

保存されているすべてのデータのサブセットをスキャンする場合は、some種類のインデックス構造が必要です。 Bツリーである必要はありません。ある意味では、パーティション化またはセグメントの削除も一種のインデックスです。

カラムナーデータベースを並べ替えて(または大まかに並べ替えて)格納することを本質的に妨げるものはありません。これにより、シークが発生する可能性があります。

とはいえ、すべての円柱データベースが、何らかの述語によって選択されて保存されたデータのサブセットをスキャンする機能を提供しているわけではありません。これは実装の問題であり、円柱モデルの制限ではありません。

1
usr

別の応答で述べられているように、あなたの正確な質問への答えは実装固有です。データベースベンダーが異なれば、回答も異なります。

私は他の列ベースのデータベースエンジンに十分に精通していませんが、BLUアクセラレーションを備えたDB2では、主キーと列編成テーブルの一意の制約をカバーするインデックスがまだあります。これらのインデックスは一意性の強制に使用されるためです。従来のBツリーインデックスとは異なりますが、順次アクセスではなくランダムアクセスを許可することでデータアクセスを最適化する新しいデータ構造もいくつかあり、機能的にはインデックスと似ています。

一方、列編成のテーブルでは、データの物理的な編成は効率的な順次アクセスに向けて最適化されているため、従来の行の場合と同様に、おそらく多くのインデックスは必要ありません組織化されたデータベース。

0
mustaccio