Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 5609|Odpowiedź: 2

Przeglądanie i tworzenie indeksów w MongoDB

[Skopiuj link]
Opublikowano 11.02.2022 17:46:29 | | | |
Indeks MongoDB

Bez indeksów MongoDB musiałby skanować każdy plik w kolekcji i wybierać te rekordy spełniające kryteria zapytania podczas odczytu danych.

Tego rodzaju efektywność zapytań polegająca na skanowaniu całego zbioru jest bardzo niska, zwłaszcza przy przetwarzaniu dużej ilości danych, zapytanie może trwać dziesiątki sekund, a nawet minuty, co jest bardzo szkodliwe dla wydajności strony.

Indeksy to specjalne struktury danych przechowywane w zbiorze danych, które można łatwo odczytać na indeksie, a indeksy to struktura, która sortuje wartości jednej lub więcej kolumn w tabeli bazy danych.

Recenzja:


Zapytaj plan realizacji

Przykładowe stwierdzenia:

Bez tworzenia indeksu (winningPlan:COLLSCAN), jak pokazano na poniższym rysunku:



funkcja explain() może również otrzymywać różne parametry, a bardziej szczegółowy plan zapytania można zobaczyć, ustawiając różne parametry.

Parametry obejmują:queryPlanner (domyślnie)、Statystyki wykonawcze、wszystkie PlanyWykonanie

Wykonaj wyjaśnienie ("executionStats"), a zobaczysz, że w planie realizacji jest więcej statystyk.

parametrznaczenie
totalKeysExaminedLiczba skanów indeksowych
totalDocsExaminedLiczba skanów dokumentów
nReturnedLiczba zwróconych wyników
executionTimeMillisWykonanie jest czasochłonne
RealizacjaSukcesCzy egzekucja zakończyła się sukcesem

Stwórz indeks

MongoDB używa metody createIndex() do tworzenia indeksów.

Należy zauważyć, że przed wersją 3.0.0 metodą tworzenia indeksów była db.collection.ensureIndex(), a w późniejszych wersjach używano metody db.collection.createIndex().

Stwórz jeden indeks


Stwórz indeks złożony

W składni wartość klucza to pole indeksu, które chcesz utworzyć, 1 jest określane do utworzenia indeksu w kolejności rosnącej, a jeśli chcesz utworzyć indeks w kolejności malejącej, możesz określić -1.tło do określenia, że indeksy są tworzone w tle, czyli dodaj opcjonalny parametr "tło". "tło" domyślnie oznacza false.

Indeksy zapytań

Polecenie brzmi następująco:



Usuń indeks

Usuń wszystkie indeksy

Usuń określony indeks

(Koniec)




Poprzedni:Jak ograniczyć rejestrację tajwańskich użytkowników, publikowanie informacji według własnej woli i prośba o porady, jak pisać.
Następny:[Rzeczywista walka]. NET/C# eksportuje pamięć podręczną za pomocą zapytania rozmytego StackExchange. Redis
 Ziemianin| Opublikowano 11.02.2022 17:49:16 |
Powolny proces analizy zapytań:

1. Użyj wolnego dziennika zapytań (system.profile), aby znaleźć instrukcje przekraczające 200 ms.

2. Następnie użyj .explain() do analizy liczby dotkniętych wierszy i przeanalizowania, dlaczego przekracza ona 200 ms

3. Zdecyduj, czy musisz dodać indeks

Włącz wolne zapytanie:


Parametr:

0: Zamknięte, nie zbiera się danych.
1: Zbieraj wolne dane zapytań, domyślnie to 100 milisekund.
2: Zbieranie wszystkich danych

Przejrzyj wyniki:


Uwaga: Indeksy można zasadniczo nazwać trwałymi w pamięci – jeśli ilość danych osiąga 100 milionów, im mniejsza liczba indeksów, tym lepiej, ponieważ zajmują dużą ilość pamięci. Według Internetu, milion indeksów stanowi około 50 milionów pamięci. Jeśli jest to 100 milionów, to będzie zajmować pamięć 5G.

Opublikowano 13.02.2022 16:30:52 |
uczony...
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com