データベースの多次元インデックス


10

実際の多次元インデックスを使用しているデータベースはどれですか?オラクルはテーブルからデータを取得するためにいくつかのインデックスを使用しますか、それとも常に選択性が最も高いと思われるインデックスを使用しますか?他のdbmsはどうですか?

回答:


9

Oracleには、ビットマップインデックスと呼ばれるインデックスタイプがあります。

ROWIDのリストではなく、各インデックスキーのビットマップをデータベースに格納するデータベースインデックス。

テーブルにビットマップインデックスがある場合、またはヒントが使用されている場合、通常のBツリーインデックスでビットマップアクセスプランを使用できますビットマップインデックスは、結合、結合、および交差できます。

複数のBツリーインデックスを組み合わせる次の実装が含まれているuse-the-index-luke.comに優れた説明があります。

DB2: DB2は、LUW 9r7(動的ビットマップを使用)およびzOS v10での複数のインデックスアクセスをサポートしています 。

MySQL: MySQLには、 リリース5.0以降のインデックスマージ最適化があります

Oracle Oracleデータベースは、BITMAP CONVERSIONを使用して、複数のインデックスをオンザフライで結合します(9iで導入)。

PostgreSQL PostgreSQLは、バージョン8.1以降、ビットマップを使用して複数のインデックス組み合わせています

SQL Server SQL Server では、V7.0以降、ハッシュアルゴリズムを使用して複数のインデックス(「インデックスの交差」)を使用できます

このStackOverflowの質問も参照してください。最初の回答では、SQL Serverはインデックスの交差を使用してビットマップインデックスと同様のことを行います。

複雑な類似クエリのための効率的で柔軟なビットマップインデックスは、ビットマップインデックスを多次元という単語に関連付けるために見つけた最も近いリファレンスです。多次元は、属性ではなくインデックスを使用する方法のようです。



5

おそらくOracleビットマップインデックスは、あなたが探しているものです。Oracleインデックスタイプ

彼らは組合と交差を許可すると思います。しかし、私はそれらに精通していないことを認めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.