Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Indici per la risoluzione dei problemi
I seguenti argomenti spiegano come agire in caso di mancata creazione dell'indice o indice in background.
Argomenti
La creazione dell'indice non riesce
Amazon DocumentDB utilizza lo storage locale su un'istanza come parte del processo di creazione dell'indice. È possibile monitorare l'utilizzo del disco utilizzando la FreeLocalStorage CloudWatch metrica (). CloudWatch -> Metrics -> DocDB -> Instance Metrics Quando la creazione di un indice consuma tutto il disco locale e ha esito negativo, riceverai un errore. Durante la migrazione dei dati su Amazon DocumentDB, ti consigliamo di creare prima gli indici e poi inserire i dati. Per ulteriori informazioni sulle strategie di migrazione e sulla creazione di indici, consulta Migrazione e aggiornamento di Amazon DocumentDB la documentazione di Amazon DocumentDB e il blog: Migrazione da MongoDB ad Amazon DocumentDB utilizzando il metodo offline.
Quando crei indici su un cluster esistente, se la creazione dell'indice richiede più tempo del previsto o non riesce, aumenta l'istanza per creare l'indice, quindi ridimensiona di nuovo l'istanza dopo la creazione dell'indice. Amazon DocumentDB consente di scalare rapidamente le dimensioni delle istanze in pochi minuti utilizzando o the. Console di gestione AWS AWS CLI Per ulteriori informazioni, consulta Gestione delle classi di istanze. Grazie ai prezzi delle istanze al secondo, paghi solo per la risorsa che utilizzi al secondo.
L'indice in background genera problemi di latenza e fallisce
Le compilazioni degli indici in background in Amazon DocumentDB non vengono avviate fino al completamento di tutte le query sull'istanza primaria avviate prima dell'avvio della compilazione dell'indice. Se è presente una query di lunga durata, le compilazioni dell'indice in background si bloccheranno fino al termine della query e quindi il completamento può richiedere più tempo del previsto. Questo è vero anche se le raccolte sono vuote.
Le build degli indici in primo piano non presentano lo stesso comportamento di blocco. Invece, le build degli indici in primo piano bloccano in modo esclusivo la raccolta fino al completamento della creazione dell'indice. Per creare indici su una raccolta vuota ed evitare di bloccare le query di lunga durata, utilizzate le build di indici in primo piano.
Nota
Amazon DocumentDB consente la creazione di un solo indice di sfondo su una raccolta alla volta. Se le operazioni DDL (Data Definition Language) come createIndex() o dropIndex() vengono eseguite sulla stessa raccolta durante la creazione di un indice in background, tale creazione non riesce.
Ingrandimento dell'indice del database
Amazon DocumentDB utilizza Multi-Version Concurrency Control (MVCC) per gestire transazioni simultanee. Quando i documenti vengono eliminati o aggiornati, le versioni precedenti rimangono nelle raccolte e negli indici come versioni «morte». Il processo di garbage collection recupera automaticamente lo spazio da queste versioni obsolete per operazioni future.
L'ingrandimento dell'indice si verifica quando gli indici di una raccolta diventano più grandi a causa dell'accumulo di voci di indice morte o obsolete o della frammentazione all'interno delle pagine. La percentuale riportata rappresenta la quantità di spazio nell'indice che può essere utilizzata dalle voci future dell'indice. Questo ingrossamento consuma spazio sia nella cache del buffer che nella memoria. Se desideri rimuovere il gonfiore, dovrai ricostruire gli indici.
Esempio Esempio
Esegui il comando seguente per determinare lo spazio di archiviazione inutilizzato per il tuo indice:
db.coll.aggregate({$indexStats:{}});
Il risultato è simile a questo:
{ "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} }
È possibile ricostruire gli indici senza tempi di inattività utilizzando il reIndex comando, che richiede una scansione dell'intera raccolta. Per informazioni, consulta Manutenzione dell'indice utilizzando ReIndex .