2011-08-30 9 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

관련 문제