Índices de séries temporais
Nesta página
Índices em coleções de séries temporais geralmente se comportam como índices em coleções regulares, mas com diversas considerações e limitações adicionais.
If there are secondary indexes on time series collections and you need to downgrade the feature compatibility version (FCV), you must first drop any secondary indexes that are incompatible with the downgraded FCV. For more information, see 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 vez de documentos individuais. Os buckets de séries temporais contêm documentos com valores metaField compartilhados, ordenados por valores timeField que são próximos. O MongoDB indexa os valores mínimos e máximos de todos os campos, exceto o metaField. Indexar 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 manualmente índices secundários a qualquer campo na sua coleção de séries temporais.
Coleção clusterizada
Por padrão, o MongoDB clusteriza coleções de time series 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 usa esse índice para melhorar o desempenho e a velocidade da consulta.
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 no 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 apenas do metaField. Nas versões anteriores a 6.3, você só pode criar índices TTL com base no parâmetro expireAfterSeconds
.
Se 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 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 índices em coleções de séries temporais:
Você não pode criar índices esparsos no metaField.
Práticas recomendadas de indexação
Use o índice metaField para filtragem e igualdade.
Use o timeField e outros campos indexados para consultas de intervalo.
As estratégias gerais de indexação também se aplicam às coleções de séries temporais. Para obter mais informações, consulte Estratégias de indexação.
Para obter mais informações e exemplos, consulte Adicionar índices secundários às coleções de séries temporais.