2010-06-22 4 views
2

내가 연결된 이메일 뉴스 레터의 문서를 검색 할 수있는 가장 빠른 방법을 찾고 있어요 링크삽입은

대 임베디드. 지금까지 저는 MongoMapper를 뉴스 레터와 이메일 용으로 각각 하나씩 사용했습니다. + 100k 개의 이메일로 인해 속도가 매우 느려지고 있습니다.

전자 메일 ('[email protected]') 에 관심이 있고 주위의 논리가 아니기 때문에 뉴스 레터 의 배열에 전자 메일을 포함하는 것이 더 빠를 것이라고 생각했습니다.

1) 한 문서에 100k ~ 500k 개의 이메일을 포함 할 수 있습니까? 2) 몽고 이드는 더 좋고/빠릅니까? 이

email = newsletter.emails.first(:email => '[email protected]') 
unless email 
    email = Email.new(:email => '[email protected]', :newsletter_id => self.id) 
    email.save 
end 

을 요청하여 컬렉션에없는 내가 모든 시작은 상처 곳이 생각하는 경우

나는 이메일을 추가 해요. ...

Class Email 
    include MongoMapper::Document 
    key :email, String 
    key :newsletter_id, ObjectId 
    belongs_to :newsletter 
end 

이에 어떤 도움을 사랑하는 것이 끝이

답변

0

을 :) 이메일 : 여기

은 이 MongoMapper :: 문서 많이 포함 클래스 뉴스 레터를 연결하는 방법입니다 현재 MongoDB, MongoMapper 또는 Mongoid의 최대 문서 크기는 16MB입니다.

당신이 압박 될 수있는 한도 내에서 모든 이메일을 들어갈 수있는 경우 http://www.mongodb.org/display/DOCS/Documents

포함 된 문서는하지만 상당히 빨리해야 참조하십시오.

이메일 전체를 저장하는 경우 배열을 저장하거나 전자 메일 주소에 전체 전자 메일에 대한 참조가 포함 된 뉴스 레터를 포함시켜야합니다.

그러면 원하는 속도를 얻을 수 있으며 뉴스 레터 외부에서 이메일에 액세스 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 실제로 참조 할 이메일 배열을 가진 문서를 만드는 것으로 끝을 맺었다. 약 120.000 개의 전자 메일로 인해 문서 크기 제한이 깨질 수 있습니다. 드물게 발생하는 새로운 참조 문서를 만드는 논리가 있습니다. – Christian

관련 문제