MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak znaleźć nieużywane indeksy w MongoDB?

W tym poście pokażemy, jak znaleźć nieużywane indeksy w MongoDB, sprawdzić statystyki użytkowania kolekcji indeksów oraz jak usunąć nieużywane indeksy.

Aktywne zarządzanie indeksami bazy danych MongoDB w kilku wersjach aplikacji może być wyzwaniem dla zespołów programistów. Wymagania często zmieniają się z każdą wersją, w której może zostać dodanych kilka nowych indeksów, a stare indeksy mogą zostać porzucone. Z czasem utrudnia to śledzenie, które indeksy MongoDB są używane, a które są teraz niepotrzebne.

Indeksy mają duży wpływ na wydajność zapisu – za każdym razem, gdy następuje zapis do kolekcji, odpowiednie indeksy muszą zostać zaktualizowane. Brak indeksów objawia się natychmiast i spowalnia zapytanie – nieużywane indeksy są bardziej subtelne i należy je aktywnie usuwać, aby poprawić wydajność zapisu. Więcej informacji można znaleźć tutaj – Niebezpieczeństwa związane z budowaniem indeksów w MongoDB.

We wcześniejszych wersjach MongoDB nie było łatwego sposobu ustalenia, czy indeks nie był używany. Jednak począwszy od wersji 3.2, MongoDB dodał obsługę operatora $indexStats, który umożliwia zbieranie statystyk dotyczących wykorzystania indeksu.

Znajdowanie nieużywanych indeksów w MongoDB

Aby sprawdzić statystyki użytkowania określonego indeksu w kolekcji, możesz użyć tego polecenia:

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

Aby uzyskać statystyki dla wszystkich indeksów kolekcji:

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

Zwrócony dokument będzie wyglądał tak:

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

Dwa ważne pola, na które należy zwrócić uwagę, to:

  1. Operacje

    Jest to liczba operacji, które wykorzystały indeks.

  2. Od

    Jest to czas, od którego MongoDB zbierał statystyki i zazwyczaj jest to ostatni czas rozpoczęcia.

Jak znaleźć nieużywane indeksy w MongoDB — popraw wydajność zapisuKliknij, aby tweetować

Upuszczanie nieużywanych indeksów w MongoDB

Po zidentyfikowaniu i zweryfikowaniu nieużywanych indeksów MongoDB możesz usunąć indeks, korzystając z poniższego kodu:

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

Jak zawsze, przed kontynuowaniem operacji upuszczania proszę sprawdzić, czy upuszczasz właściwy indeks.

Jeśli masz jakiekolwiek pytania dotyczące znajdowania nieużywanych indeksów w MongoDB, zostaw komentarz poniżej lub skontaktuj się z nami pod adresem [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB® z Hadoop i powiązanymi technologiami Big Data

  2. 5 sposobów na sprawdzenie rozmiaru kolekcji w MongoDB

  3. Porównanie dat w mongodb

  4. Importuj dane csv jako tablicę w mongodb za pomocą mongoimport

  5. Wyjątek uwierzytelniający MongoCredential i Uncategorized Mongo Db Exception