Я знаю, что такое «полная проверка коллекции». Но я немного не уверен, относится ли термин «сканирование коллекции» к запросам, использующим курсор B-дерева. Выполняются ли запросы, которые используют курсор, отличный от базового курсора, для проверки коллекции?Что такое сканирование коллекции в mongodb?
ответ
Короткий ответ - это два термина, то же самое, или, скорее, существует только «полное сканирование коллекции».
Если ваш запрос с использованием B-дерево курсора он является по определению не сканируемого коллекция путы обхода индекса для того, чтобы найти запрошенные документы.
коллекция сканирование происходит там, где индекс не может удовлетворить запрос, и мы должны сканировать полную коллекцию для того, чтобы найти необходимые документы. См. Ссылку для всей информации.
http://docs.mongodb.org/manual/reference/method/cursor.explain/
Сканирование коллекции, ну, буквально сканирование всей коллекции. Это происходит, когда пользователь запрашивает документы, используя некоторые условия, на которые невозможно ответить с помощью индекса. Для примера позволяет сказать, у нас есть коллекция пользователей с полями, такие как имя, возраст, цвет волос, адрес, номер телефона и страны
user = {"name" : "ABC",
"age" : 25,
"hair color" : "brown",
"address" : "XYZ",
"phone number" : 1234567890,
"country" :"Canada"
}
Далее, если есть индекс по имени и построения запросов к БД с помощью,
db.users.find({"name" : "ABC"});
Здесь, поскольку у нас есть индекс в поле имени, оптимизатор запросов будет использовать индекс в качестве подхода оптимизации производительности.
Предположим, вы запросите БД для какого-либо другого поля. Допустим, адрес
db.users.find({"address" : "XYZ"});
Здесь оптимизатор запросов хотел бы, чтобы сократить время его отклика на запрос, но так как он не имеет априорной информации о записях в коллекции, он должен пройти через каждый и каждый документ в в коллекции, чтобы узнать, совпадает ли поле адреса этого документа с запросом в запросе. Если это произойдет, мы вернем этот документ. Я уверен, что вы знаете, что это индекс индекса, поскольку он поддерживает указатели путем группировки документов в соответствии с определенными критериями.
Для получения дополнительной информации вы можете посмотреть here.
Для вашего вопроса запрос, который использует курсор B-дерева, позволяет избежать выполнения сканирования коллекции и, следовательно, запросы с использованием любого типа курсора, отличного от основного курсора, «в основном», избегая сканирования коллекции.
Вы можете заставить его выполнить сканирование коллекции, даже если в нем существует индекс в поле, которое запрашивается. Вы можете прочитать об этом here
«Если ваш запрос с использованием B-дерево курсора она по определению не сканируемое сбора» - это всегда верно? Например, курсор B-дерева можно использовать только для этапа «сортировки», и запрос все равно может завершить сканирование коллекции для этапа «найти». – aquaraga