Каково обоснование наличия автоматического индекса в поле _id для закрытых коллекций по умолчанию? Мы можем найти в docs, что:Capped collections и _id auto index
Без этих накладных расходов на индексирование ограниченные коллекции могут поддерживать более высокую пропускную способность ввода.
Был post о блокированного производительности коллекции вставки и мои собственные тесты показывают также, что для вставки блокированных сбора без индекса самый быстрый вариант, то нормальный сбор идет, и самый медленный вариант ограничен коллекцию индекс. Итак, почему автоматический индекс был добавлен вместе с полями _id в версии 2.2, если он достигает производительности, тогда как ограниченные коллекции предлагаются в качестве быстрых альтернатив нормальным коллекциям в определенных сценариях?
@ Салем, благодарю вас за ответ. autoIndexId на самом деле то, что я использовал для проверки производительности для вставок. И да, если вы отключите его, вставки будут быстрее. Но в чем причины этого? Единственное, что я вижу сейчас, это то, что для наборов реплик все коллекции должны иметь значение autoIndexId равным true. Что касается поддержания порядка вставки: для закрытой коллекции он работает и без индекса. – wombatonfire
Да, он поддерживает порядок вставки, но нет гарантии. Кроме того, MongoDB (компания) нацеливается на массовую масштабируемость и конкурирует с некоторыми крупными игроками, поэтому они взвешивают его как более выгодные для более широкого использования, а не для специального использования. – Saleem
Это причина, по которой они позволяют автоматически индексировать по умолчанию. Снова они позволяют нам настраивать MongoDB на основе наших потребностей в особых обстоятельствах. – Saleem