2012-11-18 13 views
21

MongoDBコレクションに列挙型の値を格納したい。効果的に文字列として格納できますか?列挙型の値と比較してインデックスのパフォーマンスに影響しますか? Mongoインデクサーは、文字列値として固定オプションがほんのわずかしかない場合に、文字列インデックスを最適化しますか?ソートされた整数でインデックスを照会するのと同様の速度を実現しますか?MongoDBの列挙型

答えて

20

文字列としてMongoDBに列挙型の値を格納することはまったく問題ありません。フィールドをインデックス化すると、インデックス付き整数クエリに匹敵するパフォーマンスが期待されます。確かに整数を使うよりも表現力があります。

唯一の本当の欠点は、あなたの列挙型文字列が多少長い場合、より多くのスペースを取ることですが、それはかなり些細な問題です。

+1

誰もこれに関連するパフォーマンス測定を行ったことがありますか?文字列を比較するのは整数を比較するよりも遅いです。インデックスは、必要な比較の数を大幅に削減しますが、クエリと挿入およびインデックスの再構築に影響する可能性があります。ベンチマークなしでは、決して性能に関するいかなる主張もしないでください。 –