MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come trovare indici inutilizzati in MongoDB?

In questo post, ti mostreremo come trovare gli indici inutilizzati in MongoDB, controllare le statistiche di utilizzo sulla tua raccolta di indici e come eliminare gli indici inutilizzati.

La gestione attiva degli indici del database MongoDB su diverse versioni di applicazioni può essere difficile per i team di sviluppo. I requisiti spesso cambiano ad ogni versione, in cui possono essere aggiunti diversi nuovi indici e i vecchi indici potrebbero essere abbandonati. Nel tempo, ciò rende difficile tenere traccia di quali indici MongoDB vengono utilizzati e quali ora non sono più necessari.

Gli indici hanno un grande impatto sulle prestazioni di scrittura:ogni volta che si scrive su una raccolta, gli indici pertinenti devono essere aggiornati. La mancanza di indici si manifesta immediatamente e rallenta la query:gli indici inutilizzati sono più sottili e devono essere eliminati attivamente per migliorare le prestazioni di scrittura. Ulteriori informazioni sono disponibili qui - Pericoli della creazione di indici su MongoDB.

Nelle versioni precedenti di MongoDB, non esisteva un modo semplice per determinare se un indice non veniva utilizzato. Tuttavia, a partire dalla versione 3.2, MongoDB ha aggiunto il supporto per l'operatore $indexStats che ti consente di raccogliere statistiche sull'utilizzo dell'indice.

Trovare indici inutilizzati in MongoDB

Per controllare le statistiche di utilizzo di un particolare indice su una raccolta, puoi usare questo comando:

db.collection.aggregate([{$indexStats: {}}, {$match: {"name": "<indexname>"}}])

Per ottenere le statistiche per tutti gli indici di una raccolta:

db.collection.aggregate([{$indexStats:{}}])

Il documento restituito sarà simile al seguente:

{
"name" : "test",
"key" : {
"key" : 1
},
"host" : "xxx:27017",
"accesses" : {
"ops" : NumberLong(145),
"since" : ISODate("2017-11-25T16:21:36.285Z")
}
}

I due campi importanti da notare qui sono:

  1. Operazioni

    Questo è il numero di operazioni che hanno utilizzato l'indice.

  2. Da

    Questa è l'ora da cui MongoDB ha raccolto le statistiche ed è in genere l'ultima ora di inizio.

Come trovare indici inutilizzati in MongoDB - Migliora le tue prestazioni di scritturaFai clic per twittare

Eliminazione degli indici inutilizzati in MongoDB

Una volta identificati e verificati gli indici MongoDB non utilizzati, puoi eliminare l'indice utilizzando il codice seguente:

db.collection.dropIndex( "<index name>"); or
db.collection.dropIndex("{key1:1.....}")

Come sempre, verifica di aver eliminato l'indice corretto prima di procedere con l'operazione di rilascio.

Se hai domande sulla ricerca di indici inutilizzati in MongoDB, lascia un commento qui sotto o contattaci all'indirizzo [email protected].