Я пытаюсь сохранить «Голоса» в MongoDB, и я зациклен на том, как действовать эффективным образом. В принципе, у меня есть вопрос с несколькими вариантами, такими как A B C D ... (всего 6). Я даю избирателям возможность выбрать вариант и хочу сохранить «Голос» с полями: MongoDate, вариант, имя избирателя и, возможно, пару полей.Эффективный формат документа для хранения «Голосов» в Mongo DB?
Я планирую иметь неограниченные «голоса» в тысячах и даже миллионах по заданному вопросу.
С точки зрения получения данных: я хотел бы иметь возможность запрашивать его в основном по дате и в графиках, например, по цене акций с почасовыми, ежедневными, месячными ... интервалами Другими словами, это похоже на время серии. Я не уверен в «формате» документа в MongoDB;
Я новичок в MongoDB, поэтому давайте посмотрим, вижу ли я это так же, как и вы. Если у меня есть 20 000 вопросов и позволяет сказать 100 000 избирателей, которые могут голосовать по любому вопросу ... У меня будет "только" один сборник для данных голосования, и каждый документ в этом сборнике будет «единым» голосованием ... это означает, что я могу загрузить коллекцию «голосов» с практически миллионами документов «единого голоса» ... и голосовать за разные вопросы ... и индексировать все эти данные b дату и вопрос справки .... и по-прежнему сохранять хорошую производительность и скорость .... –
Если вы указали в поле даты, mongodb будет хранить btree дат в памяти. Это вопрос нескольких байтов и расположения памяти. Вероятно, примерно 16 байтов для каждого объекта. Если у вас есть 100000 избирателей, реалистично, на сколько вопросов будет много голосов? Что действительно важно, так это то, сколько голосов у вас есть. Если каждый избиратель голосует 100 раз, то десять миллионов голосов. Это 160 миллионов байт или около 1,2 гигабайта памяти. Если у вас 2 гигабайта памяти, вы можете сохранить весь индекс в памяти, и он будет оставаться быстрым, так как это будет поиск Btree. – nnythm
Спасибо, теперь можете двигаться в правильном направлении ... –