Встраивание VS Ссылка на больших множествах MongoDB (Ruby)
-
29-09-2019 - |
Вопрос
Встроенная VS Link.
Я ищу самый быстрый способ поиска в информационном документе для подключенного электронного письма. До сих пор я использовал Mongomapper с одним документом для информационного бюллетеня, а другой - для электронной почты. Это становится действительно медленным с +100K электронными письмами.
Я думал, что, может быть, быстрее встраивать электронные письма в массив внутри рассылки, так как я действительно заинтересован только в электронном письме ('asyemail@email.com'), а не какую -либо логику вокруг него.
1) Возможно ли вообще внедрить электронные письма 100K-500K в один документ? 2) Монгоид лучше/быстрее для этого?
Я добавляю электронное письмо, если он еще не в коллекции, спросив
email = newsletter.emails.first(:email => 'someemail@email.com')
unless email
email = Email.new(:email => 'someemail@email.com', :newsletter_id => self.id)
email.save
end
И я думаю, что это там, где все это начинает больно.
Вот как они подключены ключевое рассылку класса включают Mongomapper :: Документ Многие: электронные письма ... End
Class Email
include MongoMapper::Document
key :email, String
key :newsletter_id, ObjectId
belongs_to :newsletter
end
хотел бы за любую помощь в этом :)
Решение
В настоящее время существует максимальный размер документа 16 МБ для MongoDB, Mongomapper или Mongoid, не будет иметь значения для этого.
видеть http://www.mongodb.org/display/docs/documents.
Встроенные документы должны быть значительно быстрее, хотя, если вы можете поместить все электронные письма в пределах лимита, может быть сжатие.
Если хранить все электронное письмо.
Затем вы можете получить желаемое преимущество в скорости, и держать электронные письма доступными вне рассылки.