Встраивание VS Ссылка на больших множествах MongoDB (Ruby)

StackOverflow https://stackoverflow.com/questions/3091981

  •  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.

Встроенные документы должны быть значительно быстрее, хотя, если вы можете поместить все электронные письма в пределах лимита, может быть сжатие.

Если хранить все электронное письмо.

Затем вы можете получить желаемое преимущество в скорости, и держать электронные письма доступными вне рассылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top