Лучше иметь несколько коллекций с тысячами документов или одну коллекцию со 100 миллионами документов? - PullRequest
1 голос
/ 26 сентября 2019

Я перевожу таблицу MySql с 100 миллионами строк в базу данных MongoDB, в этой таблице хранятся документы компании и чем они отличаются - это столбец company_id.Мне было интересно, если бы несколько коллекций на mongodb были бы быстрее, чем одна коллекция, например, каждая компания будет иметь свою собственную коллекцию (коллекции: company_1, company_2, company_3 ...) и хранить только документы этой компании, поэтому я будутогда не нужно фильтровать, как если бы у меня была только одна большая коллекция, и в каждом документе был бы столбец с именем company_id, который использовался бы для фильтрации документов.Какой метод лучше всего подойдет в этом случае?

РЕДАКТИРОВАТЬ: Вот пример документа JSON: https://pastebin.com/T5m2tbaY

{"_id":"5d8b8241ae0f000015006142","id_consulta":45254008,"company_id":7,"tipo_doc":"nfe","data_requisicao":"2019-09-25T15:05:35.155Z","xml":Object...

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете иметь одну коллекцию и один документ для каждой компании с конкретными данными компании в документе, при условии, что размер данных не превышает 16 МБ.Из соображений эффективности разместите индекс на идентификаторе компании.Если условия производительности не соответствуют ожиданиям, масштабируйте их по вертикали, т. Е. Добавьте память, ЦП, дисковый ввод-вывод и усовершенствования сети для повышения производительности.Если этого недостаточно, рассмотрите возможность разделения коллекции на несколько хостов.

...