Mysql
 sql >> Base de données >  >> RDS >> Mysql

Neo4j - Créer un index avec Cypher

Un index est une structure de données qui améliore la vitesse des opérations de récupération de données dans une base de données.

Dans Neo4j, vous pouvez créer un index sur une propriété sur n'importe quel nœud qui a reçu une étiquette. Une fois que vous avez créé un index, Neo4j le gère et le tient à jour chaque fois que la base de données est modifiée.

Pour créer un index, utilisez le CREATE INDEX ON déclaration. Comme ceci :

CREATE INDEX ON :Album(Name)

Dans l'exemple ci-dessus, nous créons un index sur le Nom propriété de tous les nœuds avec l' Album étiquette.

Lorsque l'instruction réussit, le message suivant s'affiche :

Lorsque vous créez un index, Neo4j créera l'index en arrière-plan. Si votre base de données est volumineuse, cela peut prendre un certain temps.

Ce n'est que lorsque Neo4j aura fini de créer l'index qu'il sera mis en ligne et qu'il pourra être utilisé dans les requêtes.

Afficher l'index

Les index (et les contraintes) font partie du schéma (facultatif) de la base de données.

Dans le navigateur Neo4j, vous pouvez revoir tous les index et contraintes en utilisant le :schema commande.

Tapez simplement ceci :

:schema

Vous verrez une liste de tous les index et contraintes :

Conseils d'index

Une fois qu'un index a été créé, il sera automatiquement utilisé lorsque vous effectuerez des requêtes pertinentes.

Cependant, Neo4j vous permet également d'appliquer un ou plusieurs index avec un indice. Vous pouvez créer un indice d'index en incluant USING INDEX ... dans votre requête.

Nous pourrions donc appliquer l'index ci-dessus comme suit :

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

Vous pouvez également fournir plusieurs indices. Ajoutez simplement un nouveau USING INDEX pour chaque index que vous souhaitez appliquer.

Indexer ou ne pas indexer ?

Lorsque Neo4j crée un index, il crée une copie redondante des données dans la base de données. Par conséquent, l'utilisation d'un index entraînera l'utilisation de plus d'espace disque, ainsi que des écritures plus lentes sur le disque.

Par conséquent, vous devez peser ces facteurs lorsque vous décidez quelles données/propriétés indexer.

Généralement, c'est une bonne idée de créer un index lorsque vous savez qu'il y aura beaucoup de données sur certains nœuds. De plus, si vous trouvez que les requêtes mettent trop de temps à revenir, l'ajout d'un index peut vous aider.