sql >> Databáze >  >> NoSQL >> MongoDB

Jak najít nepoužívané indexy v MongoDB?

V tomto příspěvku vám ukážeme, jak najít nepoužívané indexy v MongoDB, zkontrolovat statistiky využití vaší sbírky indexů a jak nepoužívané indexy odstranit.

Aktivní správa indexů databáze MongoDB v několika vydáních aplikací může být pro vývojové týmy náročná. Požadavky se často mění s každým vydáním, kde může být přidáno několik nových indexů a staré indexy mohou být opuštěny. Postupem času je proto obtížné sledovat, které indexy MongoDB se používají a které jsou nyní zbytečné.

Indexy mají velký vliv na výkon zápisu – pokaždé, když dojde k zápisu do kolekce, je třeba příslušné indexy aktualizovat. Nedostatek indexů se projeví okamžitě a zpomalí dotaz – nepoužívané indexy jsou jemnější a je třeba je aktivně odstraňovat, aby se zlepšil výkon zápisu. Další informace naleznete zde – Nebezpečí vytváření indexů na MongoDB.

V dřívějších verzích MongoDB neexistoval žádný snadný způsob, jak zjistit, zda se index nepoužívá. Počínaje verzí 3.2 však MongoDB přidal podporu pro operátor $indexStats, který vám umožňuje shromažďovat statistiky o používání indexu.

Nalezení nepoužívaných indexů v MongoDB

Chcete-li zkontrolovat statistiky využití konkrétního indexu v kolekci, můžete použít tento příkaz:

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

Získání statistik pro všechny indexy kolekce:

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

Vrácený dokument bude vypadat takto:

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

Dvě důležitá pole, která je třeba poznamenat, jsou:

  1. Ops

    Toto je počet operací, které použily index.

  2. Od

    Toto je čas, od kterého MongoDB shromažďoval statistiky, a je to obvykle čas posledního zahájení.

Jak najít nepoužívané indexy v MongoDB – zlepšit výkon zápisuKliknutím na Tweet

Odstranění nepoužívaných indexů v MongoDB

Jakmile identifikujete a ověříte nepoužívané indexy MongoDB, můžete index zrušit pomocí níže uvedeného kódu:

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

Jako vždy prosím ověřte, že vypouštíte správný index, než budete pokračovat v operaci zrušení.

Pokud máte nějaké dotazy ohledně hledání nepoužívaných indexů v MongoDB, zanechte komentář níže nebo nás kontaktujte na adrese [email protected].


  1. Jak funguje unhideIndex() v MongoDB

  2. MongoDB $ cos

  3. Model.find() vrací v mongoose prázdnou

  4. MongoDB jako úložiště souborů