2011-08-30 3 views
8

私のレールアプリでは、私はmongoidを使用しています。同じリクエストであっても、かなり多くのクエリの前にログに記録されます。MongoDBは名前空間を問い合わせ続ける

MONGODB dbname['system.namespaces'].find({}) 

これは何をしていますか?これはパフォーマンスの問題ですか?何とかキャッシュすることができますので、これをすべて行う必要はなく、少なくともログを詰まらせないようにしてください。

編集:ログの関連部分を次に示します。

Processing by FilesController#new as HTML 
Started GET "/" for 127.0.0.1 at Fri Sep 09 15:59:43 -0700 2011 
[Barista] Compiling all scripts for barista 
[Barista] Compiling all coffeescripts 
[Barista] Copying all javascripts 
MONGODB db['system.namespaces'].find({}) 
MONGODB db['users'].find({:_id=>BSON::ObjectId('4e6a949935d3e9726b000001')}) 
MONGODB db['system.namespaces'].find({}) 
MONGODB db['files'].find({:token=>"nonssb38"}) 
+0

名前空間のコレクションを照会するため、通常動作時に理由はありません。これらの質問はモンゴイドから来ていますか? –

+0

私は自分でmongoをしていないので、mongoidでなければなりません – jhchen

+0

実行している完全なクエリとその全体のクエリのログを投稿できますか?おそらく、文脈の中に置かれたとき、これはより意味をなさないでしょう。 –

答えて

1

です。 MongoDBのdocumentationには、<dbname>.system.*という名前空間がデータベース関連のメタデータを保持していると記載されています。

データベースのハウスキーピングの一部として各クエリで更新する必要がある可能性があるデータがキャッシュされている可能性は非常に高いです。私はいくつかの具体的な答えをソースで探しています。

+0

mongoがすべてのクエリに対して名前空間のコレクションを照会する理由はなく、実際にはそうではありません。これはモンゴイドが自動的に何かをしようとしているかもしれませんが、その場合、魔法がひどく実装されているか、OPが何か間違っています。 –

+0

@Devin、Remon、この情報が何を照会しているのか、なぜこれが必要なのかを詳しく説明できますか?私はそれについて多くの情報を掘り下げることができませんでした。 – Sid