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à.
Nelle query VLP (Variable-Length Path), il motore di query ottimizza la valutazione scegliendo di avviare l'attraversamento sul lato sinistro o destro dell'espressione. La decisione si basa sulla cardinalità dei modelli sul lato sinistro e destro. La cardinalità è il numero di nodi che corrispondono allo schema specificato.
-
Se il pattern giusto ha una cardinalità pari a uno, il lato destro sarà il punto di partenza.
-
Se il lato sinistro e quello destro hanno una cardinalità pari a uno, l'espansione viene controllata su entrambi i lati e inizia dal lato con l'espansione minore. L'espansione è il numero di bordi in uscita o in entrata per il nodo a sinistra e il nodo sul lato destro dell'espressione VLP. Questa parte dell'ottimizzazione viene utilizzata solo se la relazione VLP è unidirezionale e viene fornito il tipo di relazione.
-
Altrimenti, il lato sinistro sarà il punto di partenza.
Per una catena di espressioni VLP, questa ottimizzazione può essere applicata solo alla prima espressione. Le altre VLPs vengono valutate a partire dal lato sinistro. Ad esempio, lasciamo che la cardinalità di (a), (b) sia una e la cardinalità di (c) sia maggiore di uno.
-
(a)-[*1..]->(c)
: La valutazione inizia con (a). -
(c)-[*1..]->(a)
: La valutazione inizia con (a). -
(a)-[*1..]-(c)
: La valutazione inizia con (a). -
(c)-[*1..]-(a)
: La valutazione inizia con (a).
Ora lasciamo che gli spigoli in entrata di (a) siano due e gli spigoli in uscita di (a) siano tre, gli spigoli in entrata di (b) siano quattro e gli spigoli in uscita di (b) siano cinque.
-
(a)-[*1..]->(b)
: La valutazione inizia con (a) poiché gli spigoli in uscita di (a) sono inferiori agli spigoli in entrata di (b). -
(a)<-[*1..]-(b)
: La valutazione inizia con (a) poiché i bordi in entrata di (a) sono inferiori agli spigoli in uscita di (b).
Come regola generale, posizionate il pattern più restrittivo sul lato sinistro di un'espressione VLP.