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à.
Preferire archi orientati a quelli bidirezionali nelle query
Quando Neptune esegue ottimizzazioni delle query, gli archi bidirezionali complicano la creazione di piani di query ottimali. I piani non ottimali richiedono al motore di svolgere attività non necessarie riducendo così le prestazioni.
Pertanto, è consigliabile usare archi orientati anziché bidirezionali quando possibile. Usa ad esempio:
MATCH p=(:airport {code: 'ANC'})-[:route]->(d) RETURN p)
anziché:
MATCH p=(:airport {code: 'ANC'})-[:route]-(d) RETURN p)
La maggior parte dei modelli di dati non necessita di attraversare gli archi in entrambe le direzioni, quindi è possibile migliorare le prestazioni delle query in modo significativo passando all'utilizzo di archi orientati
Se il tuo modello di dati richiede l'attraversamento di archi bidirezionali, imposta il primo nodo (a sinistra) nel modello MATCH
come nodo con il filtro più restrittivo.
Prendiamo questo esempio: "Trova tutti gli itinerari (routes
) da e per l'aeroporto ANC
". Scrivi questa query per iniziare dall'aeroporto ANC
, in questo modo:
MATCH p=(src:airport {code: 'ANC'})-[:route]-(d) RETURN p
Il motore può eseguire la quantità minima di lavoro necessaria per soddisfare la query, perché il nodo con più restrizioni è posizionato come primo nodo (lato sinistro) nel modello e può quindi ottimizzare la query.
Questo approccio è di gran lunga preferibile rispetto all'applicazione del filtro per l'aeroporto ANC
alla fine del modello, come illustrato di seguito:
MATCH p=(d)-[:route]-(src:airport {code: 'ANC'}) RETURN p
Quando il nodo con più restrizioni non viene posizionato per primo nel modello, il motore deve eseguire attività aggiuntive perché non può ottimizzare la query e deve eseguire ulteriori ricerche per generare i risultati.