Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Préférez utiliser des identifiants personnalisés pour node/relationship
Neptune permet aux utilisateurs d'attribuer explicitement des identifiants aux nœuds et aux relations. L'identifiant doit être unique au monde dans l'ensemble de données et déterministe pour être utile. Un identifiant déterministe peut être utilisé comme mécanisme de recherche ou de filtrage, tout comme les propriétés ; cependant, l'utilisation d'un identifiant est beaucoup plus optimisée du point de vue de l'exécution des requêtes que l'utilisation des propriétés. L'utilisation d'identifiants personnalisés présente plusieurs avantages :
-
Les propriétés peuvent être nulles pour une entité existante, mais l'ID doit exister. Cela permet au moteur de requête d'utiliser une jointure optimisée lors de l'exécution.
-
Lorsque des requêtes de mutation simultanées sont exécutées, les risques d'exceptions de modification simultanée (CME) sont considérablement réduits lorsque des identifiants sont utilisés pour accéder aux nœuds, car moins de verrous prennent sur les ID que sur les propriétés en raison de leur caractère unique imposé.
-
L'utilisation d'identifiants permet d'éviter de créer des données dupliquées, car Neptune impose l'unicité des identifiants, contrairement aux propriétés.
L'exemple de requête suivant utilise un identifiant personnalisé :
Note
La propriété ~id est utilisée pour spécifier l'ID, alors qu'elle id est simplement stockée comme n'importe quelle autre propriété.
CREATE (n:Person {`~id`: '1', name: 'alice'})
Sans utiliser d'identifiant personnalisé :
CREATE (n:Person {id: '1', name: 'alice'})
Si vous utilisez ce dernier mécanisme, il n'y a pas d'application d'unicité et vous pouvez exécuter la requête ultérieurement :
CREATE (n:Person {id: '1', name: 'john'})
Cela crée un deuxième nœud avec id=1 namedjohn. Dans ce scénario, vous auriez maintenant deux nœuds avecid=1, chacun ayant un nom différent - (alice et john).