Я создаю коллекцию в mongodb, и она будет содержать 1Tera сущностей.Запросы к нему в настоящее время требуют 5 составных индексов для этой коллекции.
Я знаю, что слишком много индексов не рекомендуется, но в этой коллекции есть частые запросы, которые необходимо проиндексировать.
В одном случае я размышляю над тем, как смоделировать свои данные и индексы:
В документах могут быть родители двух типов.ПАРЕНТА и ПАРЕНТБ.запросы для каждого типа отдельно.
У меня есть два варианта:
1. сохранить 2 поля для 2 типов родителей и иметь индекс для каждого поля
{
parentsA: ['parentA1', 'parentA2']
parentsB: ['parentB1]
}
сохранить 1 поле, которое будет включать тип и один индекс для него:
{
parents: [
{parentType: 'PARENTA', parentId: 'parentA1'},
{parentType: 'PARENTA', parentId: 'parentA2'},
{parentType: 'PARENTB', parentId: 'parentB1'}
]
}
, а затем, когда я фильтрую, я также добавляю тип (PARENTA / PARENTB).
Является ли решение 2 более эффективным, потому что мне нужен 1 индекс вместо 2?(Учитывая, что у меня уже есть 5 других составных индексов).