2011-10-27 15 views
3

MongoDBをストレージとして使用してWebアプリケーションを展開しようとしています。問題は、私が(いつでも自動的に)欲しいときにいつでもローカルで索引を作成できるということですが、実際にはそれを行うべきではありません。今は生産に切り替えると、いつインデックスを作成するのか、どのくらいの頻度で構築するのかはわかりません。私は毎日それをするべきですか?私は週に一度それを行う必要がありますか?私のプロジェクトは小規模なソーシャルネットワークのようなものなので、いつか約100,000人のユーザーがいるとしましょう。データの量によっては、インデックスを作成するのに数時間から数日かかることがあります。生産のMongoDBでインデックスを作成する頻度と頻度

インデックスをバックグラウンドで作成する予定です(http://www.mongodb.org/display/DOCS/Indexing+as+a+Background+Operation参照)。それでも書き込みロックが発生しますが、ビルド・ジョブが一時停止して他の読者やライターがデータベースにアクセスできるようになります。データベースに負荷がかかると、バックグラウンド・インデックスの構築は、方法。したがって、トラフィックが最小限である(ここではhttp://www.javabeat.net/articles/353-indexing-in-practice-using-mongodb-1.htmlを調査した)時間枠内で行う必要があります。

誰も、生産時にインデックスを作成する時期と頻度(多くの場合、データが多いことが望ましい)はありますか?私はMongoidでRailsを使っています(http://mongoid.org/)。

答えて

2

インデックスを定期的に再構築する必要があると思われるようです。これはそうではありません。 MongoDBは、関連データに書き込むときにインデックスを更新します。スキーマの変更を伴うが展開した後

  • ライブ最適化(例えば、フィールドにインデックスを追加することが劇的にパフォーマンスが向上しますので)
  • 生産指数の再構築であるために私が見ることができる唯一の可能な理由は、

  • インデックス関連のエラーの後
+0

こんにちはのRemonは、確かに私は、私は定期的にインデックスを構築する必要があることを想定(発生しません)。私はこの考えに固執しています。もちろん、他のデータベースシステムと同様に、データが書き込まれるときにインデックスが更新されることは当然のことです。あなたに助けてくれてありがとう! – RaceCondition

+0

大歓迎です;) –

関連する問題