2016-06-18 17 views
0

Ich möchte einige Knoten entsprechen, die die Bedingung nicht erfüllen, aber es ist sehr langsam. Wie man es optimiert? Es gibt ungefähr 70000 Knoten in der Datenbank.Chiffre mehrere Übereinstimmung ist sehr langsam

match (n:A)--(p:B)--(q:C) 
with collect(n) as nc 
match m where not m in nc 
return count(m) 

Antwort

0

Es ist nicht notwendig, zuerst alle Knoten zu erhalten, die einem Anfangsmuster entsprechen. Es ist genug, um alle Knoten zu durchlaufen und überprüfen Sie sie:

MATCH (m) WHERE NOT (m)--(:B)--(:C) 
RETURN count(m) 

Oder, wenn die Bedingung auf dem Etikett ‚A‘ ist wichtig:

MATCH (m) 
OPTIONAL MATCH p = (m)--(:B)--(:C) 
WITH m WHERE (p IS NULL) OR (NOT p IS NULL AND NOT 'A' IN LABELS(m)) 
RETURN count(m)