Mysql
 sql >> Database >  >> RDS >> Mysql

Neo4j - Crea un indice usando Cypher

Un indice è una struttura dati che migliora la velocità delle operazioni di recupero dati in un database.

In Neo4j, puoi creare un indice su una proprietà su qualsiasi nodo a cui è stata assegnata un'etichetta. Una volta creato un indice, Neo4j lo gestirà e lo manterrà aggiornato ogni volta che il database viene modificato.

Per creare un indice, usa CREATE INDEX ON dichiarazione. In questo modo:

CREATE INDEX ON :Album(Name)

Nell'esempio sopra, creiamo un indice su Nome proprietà di tutti i nodi con l' Album etichetta.

Quando l'istruzione ha esito positivo, viene visualizzato il seguente messaggio:

Quando crei un indice, Neo4j creerà l'indice in background. Se il tuo database è grande, l'operazione potrebbe richiedere del tempo.

Solo quando Neo4j avrà finito di creare l'indice, sarà portato online e potrà essere utilizzato nelle query.

Visualizza l'indice

Gli indici (ei vincoli) diventano parte dello schema (facoltativo) del database.

Nel browser Neo4j, puoi rivedere tutti gli indici e i vincoli utilizzando il :schema comando.

Digita semplicemente questo:

:schema

Verrà visualizzato un elenco di eventuali indici e vincoli:

Suggerimenti per l'indice

Una volta creato un indice, verrà utilizzato automaticamente quando esegui query pertinenti.

Tuttavia, Neo4j ti consente anche di applicare uno o più indici con un suggerimento. Puoi creare un suggerimento per l'indice includendo USING INDEX ... nella tua richiesta.

Quindi potremmo applicare l'indice sopra come segue:

MATCH (a:Album {Name: "Somewhere in Time"}) 
USING INDEX a:Album(Name) 
RETURN a

Puoi anche fornire più suggerimenti. Aggiungi semplicemente un nuovo USING INDEX per ogni indice che desideri applicare.

Indicizzare o non indicizzare?

Quando Neo4j crea un indice, crea una copia ridondante dei dati nel database. Pertanto, l'utilizzo di un indice comporterà l'utilizzo di più spazio su disco, oltre a scritture più lente sul disco.

Pertanto, è necessario soppesare questi fattori quando si decide quali dati/proprietà indicizzare.

In generale, è una buona idea creare un indice quando sai che ci saranno molti dati su determinati nodi. Inoltre, se ritieni che le query richiedano troppo tempo per essere restituite, l'aggiunta di un indice potrebbe essere d'aiuto.