2012-01-24 18 views
0

mongodbは、小さな静的サイズの要素(数値型)と大きな型(文字列など)を持つインデックスを区別しますか?mongodbインデックスのデータ構造

BSON仕様から、私は、BSONが整数型の特殊処理の能力を示していることが分かります。インデックスにint64のみが含まれていると、インデックス作成コードがよりパフォーマンスの高いインデックスを作成することが期待されます。

おそらく、それには差別化された組合がありますか?

+0

差別はどういう意味ですか? MongoDBにクエリで特定のインデックスを使用するように指示することができるので、クエリに最適なインデックスを利用できます。インデックスをテストして、特定のクエリに対してどちらが高速かを確認できます。数値のインデックスは、データの性質上、英数字のインデックスよりもパフォーマンスが良いと思われます。 – SomethingOn

+0

データベースエンジンは、インデックスデータ型に使用する構造体を決定する前に、そのデータ型に何が入るのかを知る必要があります。 mongodbはヒューリスティックが使用されているか、または識別された共用体がインデックス値のデータ構造として使用されるかのどちらかを制限しないためです。ヒューリスティックが使用されている場合、私は何を期待するかを知りたいと思います。 –

答えて

3

Bツリーの内容は、基本的にインデックス付きフィールドのBSONシリアル化表現とそのオブジェクトのディスク位置へのポインタです。

ここにはlink to the codeが記載されています。実際には、インデックスをループしながら使用するwoCompare functionがあります。

私は単純なバイナリ比較のように見えるので、小さなデータは大きなデータよりも速く比較されます。