Evita di usare la WITH clausola quando possibile - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Evita di usare la WITH clausola quando possibile

La WITH clausola in openCypher funge da limite in cui tutto ciò che viene eseguito prima di essere eseguito, quindi i valori risultanti vengono passati alle parti rimanenti della query. La WITH clausola è necessaria quando si richiede un'aggregazione provvisoria o si desidera limitare il numero di risultati, ma a parte questo è consigliabile cercare di evitare di utilizzare la clausola. WITH La guida generale è quella di rimuovere queste semplici WITH clausole (senza aggregazione, ordine per o limite) per consentire al pianificatore di query di lavorare sull'intera query per creare un piano globale ottimale. Ad esempio, supponiamo di aver scritto una query per restituire tutte le persone che vivono in: India

MATCH (person)-[:lives_in]->(city) WITH person, city MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result

Nella versione precedente, la WITH clausola limita la posizione del pattern (city)-[:part_of]->(country {name: 'India'}) (che è più restrittivo) precedente. (person)-[:lives_in]->(city) Ciò rende il piano non ottimale. Un'ottimizzazione di questa query consisterebbe nel rimuovere la WITH clausola e lasciare che il pianificatore calcoli il piano migliore.

MATCH (person)-[:lives_in]->(city) MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result