Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Vermeiden Sie redundante Prüfungen von Knotenbezeichnungen, indem Sie detaillierte Beziehungsnamen verwenden
Bei der Leistungsoptimierung ermöglicht die Verwendung von Beziehungsbezeichnungen, die ausschließlich für Knotenmuster gelten, den Labelfilter für Knoten zu entfernen. Stellen Sie sich ein Graphmodell vor, bei dem die Beziehung likes
nur verwendet wird, um eine Beziehung zwischen zwei person
Knoten zu definieren. Wir könnten die folgende Abfrage schreiben, um dieses Muster zu finden:
MATCH (n:person)-[:likes]->(m:person) RETURN n, m
Die person
Labelprüfung für n und m ist überflüssig, da wir die Beziehung so definiert haben, dass sie nur erscheint, wenn beide vom Typ sindperson
. Um die Leistung zu optimieren, können wir die Abfrage wie folgt schreiben:
MATCH (n)-[:likes]->(m) RETURN n, m
Dieses Muster kann auch angewendet werden, wenn Eigenschaften nur für ein einzelnes Knotenlabel gelten. Gehen Sie davon aus, dass nur person
Knoten über die Eigenschaft verfügen. email
Daher person
ist es überflüssig, zu überprüfen, ob die Knotenbezeichnungen übereinstimmen. Diese Abfrage schreiben als:
MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n
Ist weniger effizient als das Schreiben dieser Abfrage als:
MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n
Sie sollten dieses Muster nur anwenden, wenn Leistung wichtig ist und Sie in Ihrem Modellierungsprozess überprüft haben, um sicherzustellen, dass diese Kantenbeschriftungen nicht für Muster wiederverwendet werden, an denen andere Knotenbeschriftungen beteiligt sind. Wenn Sie später eine email
Eigenschaft für eine andere Knotenbeschriftung hinzufügencompany
, z. B., dann unterscheiden sich die Ergebnisse zwischen diesen beiden Versionen der Abfrage.