Пока все ваши запросы, которые должны использовать поле createdAt
, используйте поле genre
, а также используйте составной индекс .
Давайте сравним двапараметры:
Запросы: Пока то, что я изложил выше, оба запроса будут вести себя одинаково , нет разницы между этими двумя, когда дело доходит до выполнения запросаскорость.
Память: Составной индекс будет использовать меньше памяти, что крайне важно, если у вас ограничено пространство ОЗУ.Давайте посмотрим на разницу на примере:
Позволяет иметь 3 документа:
{
name: "john",
last_name: "mayer"
}
{
name: "john",
last_name: "cake"
}
{
name: "banana",
last_name: "pie"
}
Теперь, если мы запустим db.collection.stats()
в варианте 1, составной индекс получим:
totalIndexSize: 53248.0
Напротив для варианта 2:
totalIndexSize: 69632.0
Вставка: полное раскрытие Я понятия не имею, как это влияет на каждый.из небольших тестов кажется, что составной индекс немного быстрее, однако я не смог найти документацию по этому вопросу и не стал исследовать глубже.