Elusión de comprobaciones de etiquetas de nodos redundantes mediante el uso de nombres de relación granulares - Amazon Neptune

Elusión de comprobaciones de etiquetas de nodos redundantes mediante el uso de nombres de relación granulares

Para optimizar el rendimiento, el uso de etiquetas de relación exclusivas de los patrones de nodos permite eliminar el filtrado de etiquetas en los nodos. Considere un modelo de gráfico en el que la relación likes solo se utiliza para definir una relación entre dos nodos person. Podríamos escribir la siguiente consulta para encontrar este patrón:

MATCH (n:person)-[:likes]->(m:person) RETURN n, m

Comprobar si la etiqueta person está presente en n y m es redundante, ya que hemos definido que la relación solo aparezca cuando ambos sean del tipo person. Para optimizar el rendimiento, podemos escribir la consulta de la siguiente manera:

MATCH (n)-[:likes]->(m) RETURN n, m

Este patrón también se puede aplicar cuando las propiedades son exclusivas de una sola etiqueta de nodo. En el caso de que solo los nodos person tengan la propiedad email, comprobar que la etiqueta del nodo coincide con person es redundante. Escribir esta consulta como:

MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n

Es menos eficiente que escribir esta consulta como:

MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n

Solo debe adoptar este patrón cuando el rendimiento sea importante y haya realizado comprobaciones en el proceso de modelado para garantizar que estas etiquetas de borde no se reutilicen en patrones que impliques otras etiquetas de nodo. Si posteriormente introduce una propiedad email en otra etiqueta de nodo, como por ejemplo company, los resultados diferirán entre estas dos versiones de la consulta.