View a markdown version of this page

Manutenção de índices - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Manutenção de índices

Sobrecarga de índices

O Amazon DocumentDB usa o Controle de Multi-Version Concorrência (MVCC) para gerenciar transações simultâneas. Quando os documentos são excluídos ou atualizados, suas versões anteriores permanecem em coleções e índices como versões “inativas”. O processo de coleta de resíduos recupera automaticamente o espaço dessas versões inativas para futuras operações.

A sobrecarga de índices ocorre quando os índices de uma coleção se tornam maiores devido ao acúmulo de entradas de índice inativas ou obsoletas ou à fragmentação nas páginas. O percentual relatado representa a quantidade de espaço de índices que pode ser usada por futuras entradas de índice. Essa sobrecarga consome espaço no cache e no armazenamento do buffer. Se você quiser remover a sobrecarga, precisará reconstruir os índices.

Exemplo: Execute o comando a seguir para determinar o armazenamento não utilizado para seu índice:

db.coll.aggregate({$indexStats:{}});

O resultado deve ser semelhante a este:

{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" : 409600, "unusedSizePercent" : 49.51 } }

Você pode reconstruir índices sem tempo de inatividade usando o comando reIndex, que exige uma varredura de toda a coleção. Consulte Manutenção do índice usando reIndex.

Manutenção do índice usando reIndex

ReIndex é um comando usado para reconstruir um índice. Geralmente é usado quando um índice se torna corrompido ou ineficiente. Com o tempo, os índices podem acumular espaço não utilizado devido a muitas atualizações, inserções ou exclusões, levando à degradação do desempenho. A reindexação ajuda a remover esse espaço não utilizado e a restaurar a eficiência do índice.

Diretrizes do ReIndex

  • O reIndex só é compatível com o Amazon DocumentDB 5.0 e superior

  • O reIndex sempre é executado em segundo plano.

  • O Amazon DocumentDB suporta a reindexação de um único índice em segundo plano, permitindo a utilização de vários trabalhadores. O índice antigo pode ser usado por consultas quando o processo de reindexação está em execução.

  • O Amazon DocumentDB oferece suporte à indexação de relatórios de progresso por meio do CurrentOp. Você pode ver os estágios de construção do índice semelhantes aos estágios de construção do índice visualizados durante a criação do índice. A única diferença é que o reIndex sempre tem oito estágios, independentemente de ser único ou não. Não há um estágio de “índice de construção: chaves de classificação 2".

  • O reIndex pode ser executado simultaneamente com qualquer comando, exceto comandos relacionados ao índice na mesma coleção: createIndexes, dropIndexes, collMod e RenameCollection.

  • Atualmente, o reIndex não é compatível com índices textuais, geoespaciais, vetoriais e parciais.

Construção de reindexação

Use o seguinte comando para recriar seu índice:

db.runCommand({ reIndex: "collection-name", index: "index-name"})

Opcionalmente, você também pode controlar o número de operadores atribuídos ao processo de reconstrução:

db.runCommand({ reIndex: "collection-name", index: "index-name", workers: number })

Para obter informações específicas sobre o gerenciamento de índices com Java, consulteGerenciamento de índices no Amazon DocumentDB com Java.