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 der Knotenbeschriftungen, indem Sie granulare Beziehungsnamen verwenden
Bei der Leistungsoptimierung können durch die Verwendung von Beziehungsbezeichnungen, die ausschließlich für Knotenmuster gelten, die Labelfilterung auf Knoten entfällt. Stellen Sie sich ein Graphmodell vor, bei dem die Beziehung likes nur zur Definition einer Beziehung zwischen zwei person Knoten verwendet wird. Wir könnten die folgende Abfrage schreiben, um dieses Muster zu finden:
MATCH (n:person)-[:likes]->(m:person) RETURN n, m
Die person Labelüberprü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 ausschließlich für eine einzelne Knotenbezeichnung gelten. Gehen Sie davon aus, dass nur person Knoten über diese Eigenschaft verfügen. email Daher person ist es überflüssig, zu überprüfen, ob die Knotenbezeichnungen übereinstimmen. Diese Abfrage wird wie folgt geschrieben:
MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n
Ist weniger effizient, als diese Abfrage zu schreiben als:
MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n
Sie sollten dieses Muster nur verwenden, wenn Leistung wichtig ist und Sie während des Modellierungsprozesses Kontrollen durchführen, 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 wie z. B. hinzufügencompany, unterscheiden sich die Ergebnisse zwischen diesen beiden Versionen der Abfrage.