Вопрос по performance, types, field, indexing, mongodb – Имеет ли значение тип поля в индексе MongoDB?

13

Вот два примера структуры документа в MongoDB.

{  
 UserId: "123",  
 UserName: "Usain Bolt"  
}



{  
 UserId: NumberLong(123),  
 UserName: "Usain Bolt"  
}

Если бы я должен был создать индекс наUserID, будет ли разница в производительности запросов поиска между двумя приведенными выше примерами?

Ваш Ответ

2   ответа
2

В отношении индексов к строкам и числам следует обратить внимание на то, что порядок чисел в сортировке, как правило, хорошо понятен. Однако, когда вы используете строкуЛексикографический заказ будет использоваться вместо этого, поэтому вы должны знать о различиях там.

Кроме того, для отслеживания угла размера, указанного в jdi, строка может быть произвольно длинной, хотя, конечно, ее можно контролировать длинной, которая будет сохранена, так как тип BSON double всегда будет8 байт.

7

У меня нет точного ответа по этому вопросу, но вот мое понимание:

Индексы

Indexed fields may be of any type, including (embedded) documents

Скорее всего, индексы, независимо от типа, хэшируются, чтобы иметь возможность индексировать одинаково. Если бы существовали конкретные соображения, которые следует соблюдать для разных типов, стандартные документы mongodb сделали бы это различие.

Ответ, данныйподобный вопрос здесь относится к примерам кода из mongodb, что предполагает, что сравнения индексов почти одинаковы в отношении типов, но, вероятно, производительность зависит от размера индекса.

Похожие вопросы