sql >> Base de Datos >  >> RDS >> Mysql

¿Es una buena idea usar MySQL y Neo4j juntos?

Algunas reflexiones sobre esto:

Intentaría modelar su modelo de dominio Neo4j para incluir los atributos de cada nodo en el gráfico. Al separar sus datos en dos almacenes de datos diferentes, puede limitar algunas operaciones que quizás desee realizar.

Supongo que todo se reduce a lo que harás con tu gráfico. Si, por ejemplo, desea encontrar todos los nodos conectados a un nodo específico cuyos atributos (es decir, nombre, edad... lo que sea) son ciertos valores, primero tendría que encontrar el ID de nodo correcto en su base de datos MySQL y luego entrar en ¿Neo4j? Esto parece lento y demasiado complicado cuando podrías hacer todo esto en Neo4j. Entonces, la pregunta es:¿necesitará los atributos de un nodo al atravesar el gráfico?

¿Tus datos cambiarán o son estáticos? Tener dos almacenes de datos separados complicará las cosas.

Mientras que generar estadísticas usando una base de datos MySQL puede ser más fácil que hacer todo en Neo4j, el código requerido para atravesar un gráfico para encontrar todos los nodos que cumplen con un criterio definido no es demasiado difícil. Cuáles son estas estadísticas deberían impulsar su solución.

No puedo comentar sobre el rendimiento de la consulta MySQL para seleccionar ID de nodo. Supongo que eso se reduce a cuántos nodos necesitará seleccionar y su estrategia de indexación. Sin embargo, estoy de acuerdo con el lado del rendimiento cuando se trata de atravesar un gráfico.

Este es un buen artículo sobre esto:MySQL vs. Neo4j en un Gráfico transversal a gran escala y en este caso, cuando dicen grande, solo se refieren a un millón de vértices/nodos y cuatro millones de aristas. Así que ni siquiera era un gráfico particularmente denso.