2015-05-03 3 views
-2

Требование к этой системе - хранить информацию о пользователях и сообщать об этом. Итак ... для пользователя имеет смысл быть отдельным документом и, возможно, иметь массив «событие» или «тег» для этого пользователя, и может быть выполнен запрос, который возвращает всех пользователей, у которых было определенное событие ... это хорошо. Но - я беспокоюсь о производительности здесь. Через некоторое время эти данные будут очень большими, очень быстро.MongoDB для системы тегов пользователей

Предположим, у нас действительно активный пользователь - он имеет миллиарды событий, и этот конкретный пользовательский документ приближается к размерам гигабайт. В этом случае простой процесс вытягивания этого документа займет некоторое время ... и обновление, после чего его отправка обратно займет некоторое время (хотя я думаю, что отдельные свойства могут обновляться индивидуально ...)

Каковы способы управления этим?

+0

«Какой инструмент использовать» вопросы не по теме, и ваш вопрос уже получил 3 из 5 близких голосов, поэтому я отредактировал его, чтобы сделать его по теме. – Philipp

ответ

0

Документ, приближающийся к гигабайтам в размерах, уже технически невозможен, поскольку MongoDB ограничивает 16 МБ документами.

Когда у вас есть документы, которые растут с течением времени, обычно лучше помещать растущие данные в отдельную коллекцию в виде отдельных документов. Причина в том, что, когда документ выходит за пределы своего первоначального размера, MongoDB время от времени переносит документ в другое место, что значительно замедляет обновление.

Смежные вопросы