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

Hvordan finder man ubrugte indekser i MongoDB?

I dette indlæg viser vi dig, hvordan du finder ubrugte indekser i MongoDB, tjekker brugsstatistikker på din indekssamling, og hvordan du dropper dine ubrugte indekser.

Aktiv administration af MongoDB-databaseindekser over flere applikationsudgivelser kan være udfordrende for udviklingsteams. Kravene ændres ofte med hver udgivelse, hvor flere nye indekser kan tilføjes, og gamle indekser kan blive forladt. Over tid gør dette det vanskeligt at holde styr på, hvilke MongoDB-indekser der bruges, og hvilke der nu er unødvendige.

Indekser har stor indflydelse på skriveydelsen – hver gang der skrives til en samling, skal de relevante indekser opdateres. Mangel på indekser manifesterer sig med det samme og bremser forespørgslen - ubrugte indekser er mere subtile og skal aktivt beskæres for at forbedre skriveydeevnen. Flere oplysninger kan findes her - Perils of building indexs on MongoDB.

I tidligere versioner af MongoDB var der ingen nem måde at afgøre, om et indeks ikke blev brugt. Men fra og med version 3.2 tilføjede MongoDB understøttelse af $indexStats-operatoren, som lader dig indsamle statistik om dit indeksbrug.

Find ubrugte indekser i MongoDB

For at kontrollere brugsstatistikker for et bestemt indeks på en samling, kan du bruge denne kommando:

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

For at få statistikken for alle indekser for en samling:

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

Det returnerede dokument vil se sådan ud:

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

De to vigtige felter at bemærke her er:

  1. Ops

    Dette er antallet af handlinger, der brugte indekset.

  2. Siden

    Dette er tidspunktet, hvorfra MongoDB indsamlede statistik, og er typisk det sidste starttidspunkt.

Sådan finder du ubrugte indekser i MongoDB - Forbedre din skrivepræstation Klik for at tweete

Slet ubrugte indekser i MongoDB

Når du har identificeret og verificeret ubrugte MongoDB-indekser, kan du slette indekset ved at bruge koden nedenfor:

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

Bekræft som altid, at du sletter det rigtige indeks, før du fortsætter med slipoperationen.

Hvis du har spørgsmål om at finde ubrugte indekser i MongoDB, så efterlad en kommentar nedenfor eller kontakt os på [email protected].


  1. ønsker at køre redis-server i baggrunden nonstop

  2. Redis Python - hvordan man sletter alle nøgler i henhold til et specifikt mønster I python, uden at python itererer

  3. Visuel statistik til din MongoDB-server

  4. redis HLL for mange falske positiver