Ich habe ungefähr 10 k Benutzerknoten auf meiner Diagrammdatenbank. Ich weiß es nicht zu viel, aber ich suche nach der besten Lösung für meinen Fall.Welcher Fall hat mehr Leistung
Ich muss einige meiner Benutzer markieren und später danach suchen.
Ich kam mit zwei Lösungen (zumindest für jetzt), aber ich konnte mich nicht entscheiden, welches für die Leistung am besten ist, was denkst du über meine möglichen Lösungen?
1 - Ich kann hinzufügen neue Eigenschaft alle meinen Benutzerknoten mit Standardwert false.
MATCH (u:User) SET u.marked = false
Danach werde ich markierte Eigenschaft auf True für alle Benutzer setzen, die ich später abfragen muss. Sagen wir, es gibt 50 von ihnen.
Später, als ich diese markiert Benutzer benötigen i abfragen wie:
MATCH (u:User) WHERE u.marked = true RETURN u
2 - Ich kann neue Eigenschaft hinzufügen nur für diejenigen Benutzer, die ich später benötigen und verändert nicht andere Benutzerknoten . Wie folgt aus:
MATCH (u:User) WHERE u.id IN [...,123,456,789,...] SET u.marked = true
später, als ich markierte Benutzer benötigen, werde ich fragen wie:
MATCH (u:User) WHERE u.marked = true RETURN u
oder
MATCH (u:User) WHERE EXISTS(u.marked) AND u.marked = true RETURN u
Wenn Sie eine andere Art und Weise wissen, dass mein Problem löst, ich bin offen für Meinungen.
Vielen Dank im Voraus.
Sie könnten markierte Benutzer IDs in separaten Tabelle speichern. Und wenn Sie sie erneut markieren müssen, löschen Sie einfach vorherige Ergebnisse und speichern neue.Später könnten Sie bei Bedarf weitere Eigenschaften hinzufügen. – Edgar
Verwenden Sie 'PROFILE' vor der Abfrage erhalten Sie Details davon. wie 'PROFILE MATCH (u: Benutzer) WHERE u.marked = wahr RETURN u' –
Nur damit Sie wissen, in der zweiten Option in der Beschreibung, die Übereinstimmung, wo u.marked = true ist genug. Eine Existenzprüfung ist hier nicht erforderlich. – InverseFalcon