Índices de séries temporais
Nesta página
Os índices sobre coleções de séries temporais geralmente se comportam como índices sobre collections regulares, mas com várias considerações e limitações adicionais.
Se houver índices secundários em coleções de séries temporais e você precisar fazer downgrade da versão de compatibilidade do recurso (fCV), primeiro descartará todos os índices secundários que são incompatíveis com o fCV rebaixado. Para obter mais informações, consulte setFeatureCompatibilityVersion
.
A partir da versão 6.0, você pode adicionar um índice secundário a qualquer campo em uma coleção de séries temporais. O MongoDB indexa coleções de séries temporais por buckets de documentos em oposição a documentos individuais. Os buckets de séries temporais contêm documentos com valores de metaField compartilhados, ordenados por valores de timeField próximos. O MongoDB indexa os valores mínimo e máximo de todos os campos, exceto o metaField. A indexação de buckets em vez de documentos individuais reduz o tamanho do índice e melhora a eficiência da query.
Dica
Para melhorar o desempenho da query, você pode adicionar índices secundários manualmente a qualquer campo da sua coleção de séries temporais.
Clustered Collection
Por padrão, o MongoDB clusters coleções de séries temporais com base no tempo de bucket.
Índices compostos
Novidades na versão 6.3.
A partir do MongoDB 6.3, o MongoDB cria um índice composto padrão no metaField e no timeField de uma coleção de séries temporais. O MongoDB utiliza este índice para melhorar o desempenho e a velocidade da query.
Você pode adicionar um índice composto nos campos timeField
, metaField
ou de medição.
Índices Parciais
Novidades na versão 6.0.
A partir do MongoDB 6.0, você pode usar os operadores $or
, $in
e $geoWithin
com índices parciais em uma coleção de séries temporais.
Você não pode criar índices parciais no metaField e timeField.
TTL Indexes
Novidades na versão 6.3.
A partir do MongoDB 6.3, você pode criar um índice TTL com um partialFilterExpression
que depende somente do metaField. Em versões anteriores a 6.3, você só pode criar índices TTL com base no parâmetro expireAfterSeconds
.
Se a sua coleção de séries temporais não usar a opção expireAfterSeconds
para expirar documentos, a criação de um índice TTL parcial definirá um tempo de expiração somente para os documentos correspondentes. Se a coleção usar expireAfterSeconds
para todos os documentos, você poderá usar um índice TTL parcial para expirar os documentos correspondentes mais cedo.
Índices proibidos
O MongoDB não permite os seguintes tipos de índice em coleções de séries temporais:
Você não pode criar índices esparsos no metaField.
Indexação de melhores práticas
Use o índice metaField para filtragem e igualdade.
Use o timeField e outros campos indexados para queries de intervalo.
Estratégias gerais de indexação também se aplicam a coleções de séries temporais. Para obter mais informações, consulte Indexação de estratégias.
Para obter mais informações e exemplos, consulte Adicionar índices secundários a coleções de séries temporais.