2012-04-22 8 views
0

古典的なリレーショナルデータベースには、USER_IDのようなフィールドがあります。このフィールドは通常、自動インクリメントの番号になります。 MongoDBは、以下のMongoDBでは従来のユーザーIDを使用できませんか?

4f90e98277f6426c0a000001

ようになり、文書IDは、この完全USER_IDを交換することはできますか?私は基本的に尋ねていることは、検索、挿入、インデックス作成という点では、自動増分数と同じくらい速いのですか? If

+0

"If" ..............................? – Ashe

答えて

2

プライマリキーが整数ではなくObjectIDであるため、パフォーマンスの問題に直面することはほとんどありません。すぐにデータサイズの影響を受けます。私はそれについて心配しません。

のObjectIDは、いくつかの利点をもたらします:

  • それは(あなたがデータベースに相談することなくアプリケーションで新しいIDを作成することができます)、グローバルに一意です。
  • シャーディングサポート(シャード間で自動インクリメントシーケンスを同期させる必要はありません)。
  • は単調、時間とともに増加する(実際のタイムスタンプを含むので、あなただけの挿入時間でソートしたい場合は、別のcreated_atフィールドを持っている必要はありません)。
+0

時間とともに単調に増加するだけでなく、実際のタイムスタンプも含みます(抽出する機能があります)。 – Thilo

+0

はい、私は暗黙のうちに考えていました:) –

+0

公開IDのオブジェクトにオブジェクトIDを返すことはできますか?私はあなたがMongoDbといくつかのマシン固有の情報を使用していることが分かります。 –

関連する問題