2017-05-24 6 views
1

MongoDbでインデックスを作成するとき。MongoDbバックグラウンドインデックスとユニークインデックス

  • フォアグラウンドインデックス付けを行うので、
  • やってバックグラウンドのインデックス作成をしながら、すべての書き込み操作をロックすると、まだ、

私の質問のレコードが平均時間で書き込むことを可能にする:2つのオプションがあります。次のとおりです。

バックグラウンドでユニークなインデックスを作成するにはどうすればよいですか?インデックス構築中に重複した文書を挿入するとどうなりますか?

+1

これはわかりませんが、これを処理する唯一の合理的な方法は、インデックスの作成に失敗することです(フォアグラウンドのユニークインデックスを作成する場合も同じですが、その状況ではエラー報告はより簡単に)。 – Thilo

答えて

1

MongoDB docs参照 - のmongodプロセスが終了すると、インスタンスは、インデックスの構築がフォアグラウンド・インデックス・ビルドとして再起動します再起動時にバックグラウンドのインデックスの構築は、進行中の場合

を。重複したキーエラーなどのエラーがインデックスビルドで発生した場合、mongodはエラーで終了します。

だから、2 possibilities-

  1. は、インデックスの作成が完了した場合、あなたは挿入しようとしている文書はあなたにインスタントエラーになりますがあります。
  2. または、インデックス作成がバックグラウンドで進行中の場合は、挿入時にインデックスが100%でないため、ドキュメントを挿入できます。しかし、後でインデックス作成プロセスがインデックスを重複したドキュメントに配置しようとすると、エラーで終了します。これは、重複したドキュメントがあり、フォアグラウンドインデックスを作成しようとした場合と同じ動作です。
関連する問題