Pregunta

Embedded vs enlace

Estoy buscando la manera más rápida para buscar un documento Boletín de correo electrónico conectado. Hasta ahora he utilizado MongoMapper con un documento de lista de correos y otra para el correo electrónico. Esto se está poniendo muy lento con 100k + correos electrónicos.

Estaba pensando que quizá es más rápido para integrar los mensajes de correo electrónico en una matriz dentro Boletín ya que estoy realmente interesado sólo en el correo electrónico ( 'someemail@email.com') y no cualquier lógica alrededor de ella.

1) ¿Es posible en absoluto a incrustar tanto como 100k-500k mensajes de correo electrónico en un solo documento? 2) ¿Es Mongoid mejor / más rápido para esto?

Estoy agregando el correo electrónico si no está ya en la colección preguntando

email = newsletter.emails.first(:email => 'someemail@email.com')
unless email
    email = Email.new(:email => 'someemail@email.com', :newsletter_id => self.id)
    email.save
end

Y creo que esto es donde todo empieza a doler.

Aquí es cómo están conectados     clase Boletín        incluir MongoMapper :: Documento        muchos mensajes de correo electrónico:        ...      final

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

amaría para cualquier ayuda en esto:)

¿Fue útil?

Solución

Hay un tamaño máximo de documento de 16mb actualmente para MongoDB, MongoMapper o Mongoid no hará ninguna diferencia a este.

http://www.mongodb.org/display/DOCS/Documents

Los documentos insertados deben ser considerablemente más rápido, sin embargo, si te puedes adaptar todos los mensajes de correo electrónico en el plazo podría ser un apretón.

Si va a almacenar todo el correo electrónico es para tanto, ¿por qué no almacenar o una matriz o simplemente incrustados los correos electrónicos abordan en el canto boletín de noticias con una referencia al correo electrónico completa.

A continuación, puede obtener la ventaja de la velocidad que desee y mantener a los mensajes de correo electrónico accesible desde fuera del boletín de noticias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top