indeks to struktura danych, która poprawia szybkość operacji pobierania danych w bazie danych.
W Neo4j możesz utworzyć indeks dla właściwości w dowolnym węźle, któremu nadano etykietę. Po utworzeniu indeksu Neo4j będzie nim zarządzać i aktualizować po każdej zmianie bazy danych.
Aby utworzyć indeks, użyj CREATE INDEX ON
oświadczenie. Tak:
CREATE INDEX ON :Album(Name)
W powyższym przykładzie tworzymy indeks na Nazwie właściwość wszystkich węzłów z Albumem etykieta.
Gdy stwierdzenie się powiedzie, zostanie wyświetlony następujący komunikat:
Kiedy tworzysz indeks, Neo4j utworzy indeks w tle. Jeśli Twoja baza danych jest duża, może to zająć trochę czasu.
Dopiero gdy Neo4j zakończy tworzenie indeksu, zostanie on przeniesiony do trybu online i będzie można go używać w zapytaniach.
Wyświetl indeks
Indeksy (i ograniczenia) stają się częścią (opcjonalnego) schematu bazy danych.
W przeglądarce Neo4j możesz przeglądać wszystkie indeksy i ograniczenia za pomocą :schema
polecenie.
Po prostu wpisz to:
:schema
Zobaczysz listę wszystkich indeksów i ograniczeń:
Wskazówki dotyczące indeksu
Po utworzeniu indeksu będzie on automatycznie używany podczas wykonywania odpowiednich zapytań.
Jednak Neo4j pozwala również na wymuszenie jednego lub więcej indeksów za pomocą podpowiedzi. Możesz utworzyć wskazówkę dotyczącą indeksu, dołączając USING INDEX ...
w zapytaniu.
Możemy więc wymusić powyższy indeks w następujący sposób:
MATCH (a:Album {Name: "Somewhere in Time"}) USING INDEX a:Album(Name) RETURN a
Możesz również podać wiele wskazówek. Po prostu dodaj nowy USING INDEX
dla każdego indeksu, który chcesz wymusić.
Indeksować czy nie indeksować?
Kiedy Neo4j tworzy indeks, tworzy nadmiarową kopię danych w bazie danych. Dlatego użycie indeksu spowoduje wykorzystanie większej ilości miejsca na dysku oraz wolniejszy zapis na dysku.
Dlatego podczas podejmowania decyzji, które dane/właściwości należy zindeksować, należy rozważyć te czynniki.
Ogólnie rzecz biorąc, dobrym pomysłem jest tworzenie indeksu, gdy wiesz, że w niektórych węzłach będzie dużo danych. Ponadto, jeśli okaże się, że zwrócenie zapytania trwa zbyt długo, dodanie indeksu może pomóc.