Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Neo4j - Erstellen Sie einen Index mit Cypher

Ein Index ist eine Datenstruktur, die die Geschwindigkeit von Datenabrufoperationen in einer Datenbank verbessert.

In Neo4j können Sie einen Index über eine Eigenschaft auf jedem Knoten erstellen, dem ein Label gegeben wurde. Sobald Sie einen Index erstellt haben, verwaltet Neo4j ihn und hält ihn auf dem neuesten Stand, wenn die Datenbank geändert wird.

Um einen Index zu erstellen, verwenden Sie den CREATE INDEX ON Erklärung. So:

CREATE INDEX ON :Album(Name)

Im obigen Beispiel erstellen wir einen Index für Name -Eigenschaft aller Knoten mit dem Album Bezeichnung.

Wenn die Anweisung erfolgreich ist, wird die folgende Nachricht angezeigt:

Wenn Sie einen Index erstellen, erstellt Neo4j den Index im Hintergrund. Wenn Ihre Datenbank groß ist, kann dies einige Zeit dauern.

Erst wenn Neo4j den Index fertig erstellt hat, wird er online gebracht und kann in Abfragen verwendet werden.

Zeigen Sie den Index an

Indizes (und Einschränkungen) werden Teil des (optionalen) Datenbankschemas.

Im Neo4j-Browser können Sie alle Indizes und Einschränkungen überprüfen, indem Sie das :schema verwenden Befehl.

Geben Sie einfach Folgendes ein:

:schema

Sie sehen eine Liste aller Indizes und Beschränkungen:

Indexhinweise

Sobald ein Index erstellt wurde, wird er automatisch verwendet, wenn Sie relevante Abfragen durchführen.

Mit Neo4j können Sie jedoch auch einen oder mehrere Indizes mit einem Hinweis erzwingen. Sie können einen Indexhinweis erstellen, indem Sie USING INDEX ... einfügen in Ihrer Abfrage.

Wir könnten also den obigen Index wie folgt erzwingen:

MATCH (a:Album {Name: "Somewhere in Time"}) 
USING INDEX a:Album(Name) 
RETURN a

Sie können auch mehrere Hinweise geben. Fügen Sie einfach einen neuen USING INDEX hinzu für jeden Index, den Sie erzwingen möchten.

Indexieren oder nicht indexieren?

Wenn Neo4j einen Index erstellt, erstellt es eine redundante Kopie der Daten in der Datenbank. Daher wird die Verwendung eines Indexes dazu führen, dass mehr Festplattenspeicher belegt wird und Schreibvorgänge auf der Festplatte langsamer werden.

Daher müssen Sie diese Faktoren abwägen, wenn Sie entscheiden, welche Daten/Eigenschaften indiziert werden sollen.

Im Allgemeinen ist es eine gute Idee, einen Index zu erstellen, wenn Sie wissen, dass auf bestimmten Knoten viele Daten vorhanden sein werden. Wenn Sie außerdem feststellen, dass die Rückgabe von Abfragen zu lange dauert, kann das Hinzufügen eines Index hilfreich sein.