MongoDB をストレージ バックエンドとして使用するサービスを作成しています。サービスはユーザー入力のハッシュを生成し、同じハッシュ (+ 入力) がデータセットに既に存在するかどうかを確認します。
ハッシュは一意ですがランダム(=非増分/順次)になるため、私の質問は次のとおりです。
- オブジェクト ID にランダムな値を使用することは合法ですか? 例:
$object_id = new MongoId(HEX-OF-96BIT-HASH);
それとも、「実際の」ObjectID にはタイムスタンプや machine_id なども含まれているため、MongoDB は ObjectID を他のサーバーで生成されたものとは異なる方法で処理しますか?
「ランダム」値を使用することの長所と短所は何ですか? 新しい _id がインクリメンタルでない場合、エンジンが挿入時にインデックスを更新するのは統計的に遅くなると思います-私はそれで正しいですか?