Почему бы не определить все атрибуты коллекции как индексы? - PullRequest
0 голосов
/ 04 декабря 2018

Как я вижу, при выполнении команды executionStats после запроса поиска MongoDB, например:

db.users.find({some_index: "hello"}).explain("executionStats")

Я получаю данные со сложностью O (1), так как я заранее определил, чтоsome_index - это индекс в монго - с помощью: db.users.createIndex("some_index": 1)

Это здорово, но почему бы не определить все ключи как индекс?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Преимущество индексов:

  • Быстрое чтение запросов
  • Лучшее время отклика
  • Помогает сделать строку уникальной или без дубликатов

Недостатки индексов:

  • Индексы занимают дополнительное дисковое пространство.
  • Индексы занимают ОЗУ
  • Они снижают производительность при вставках, обновлениях и удалениях.

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

0 голосов
/ 04 декабря 2018

почему бы не определить все ключи как индексы?

Можно, но индексы будут

  1. Занимать диск и оперативную память.
  2. Замедленная запись.

Если у вас достаточно оборудования, чтобы бросить его, продолжайте.Но зачем создавать и поддерживать индексы, которые вам могут никогда не понадобиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...