Estoy usando MySQL para almacenar informes desde una herramienta. Estoy muy contento con la velocidad y la flexibilidad con la que los usuarios pueden consultar los datos. La herramienta también tiene algunos datos que son un gráfico. Mi pregunta es, ¿es una buena idea almacenar el gráfico en MySQL? La cantidad de nodos y bordes en el gráfico es de millones y las consultas generalmente son cruces de gráficos.Es una buena idea guardar gráficos en MySQL?
Respuesta
MySQL no se crea y optimiza como una base de datos de gráficos en particular. Es posible que desee probar Neo4J, que es una buena base de datos de gráficos.
O bien, puede indexar el gráfico ... –
Las bases de datos SQL no manejan muy bien los datos de gráficos en general. El problema es que para hacer un recorrido de gráfico, o bien tiene que dibujar todo el gráfico en la memoria en una sola consulta, luego manipularlo y almacenar los cambios, o tiene que realizar grandes cantidades de combinaciones para atravesar el gráfico, un nodo a la vez. , que se vuelve prohibitivamente lento Con los gráficos de la escala que está viendo, probablemente sería mejor usar una base de datos de gráficos o usar una base de datos de memoria como REDIS como una capa de almacenamiento en caché rápida y luego persistir en segundo plano.
O bien, puede indexar el gráfico ... –
SQL simple generalmente no es apto para manipular una estructura de datos de gráfico. Sin embargo, existen técnicas para indexarlo.
Por ejemplo, si el suyo no se actualiza con frecuencia, usar un GRIPP index le permitirá manejar las consultas de cruce de gráficos extremadamente bien. Este último le permite responder consultas padre-hijo y relacionadas con la profundidad en un tiempo más o menos fijo, independientemente del número de nodos o la densidad de los enlaces del gráfico.
O bien, puede indexar el gráfico ... oh, espera.^_^+1 – Angad
- 1. sqlite e hibernate - es una buena idea?
- 2. ¿Es una buena idea hornear procesos en PHP/Apache?
- 3. ¿Campos multivalorados una buena idea?
- 4. ¿Es una buena idea ejecutar `... par.map (` en listas grandes directamente?
- 5. ¿Es una buena idea poner db/schema.rb en .gitignore list ??
- 6. ¿Es correcto (VERDADERO) una buena idea en C?
- 7. ¿Es una buena idea una clase de "preferencias maestras"?
- 8. ¿Es una buena idea devolver "const char *" de una función?
- 9. Implementar una clase "LazyProperty": ¿es esta una buena idea?
- 10. ¿Es una buena idea usar una función CreateUUID() como sal?
- 11. Guardar gráficos en Haskell
- 12. ¿En qué situaciones es una buena idea preferir GDI en lugar de DirectX/OpenGL
- 13. MySQL 1,000 's de o declaraciones (buena idea?)
- 14. ¿Es una buena idea preferir NSNumberFormatterBehavior10_4 sobre NSNumberFormatterBehaviorDefault?
- 15. ¿Puede un minificador hacer esto? (.... y ¿es una buena idea?)
- 16. internacionalización con nibs. ¿Es realmente una buena idea?
- 17. activerecord como modelo, ¿es esta una buena idea?
- 18. ¿Es una buena idea colapsar viejas migraciones de rieles?
- 19. ¿Es una buena idea comparar double.MaxValue para la igualdad?
- 20. ¿Es una buena idea aprender primero LINQ, luego SQL?
- 21. Django: ¿Es una buena idea generar JS dinámicamente?
- 22. ¿Cuándo no es una buena idea pasar por referencia?
- 23. ¿Es una buena idea peinar la etiqueta del cuerpo?
- 24. REST Servicios web usando MVC, ¿es una buena idea?
- 25. ¿Cuándo es una buena idea la herencia virtual?
- 26. cuál es una buena biblioteca/marco de gráficos ios
- 27. Guardar acciones en IntelliJ IDEA
- 28. Cookies de sesión firmadas. ¿Una buena idea?
- 29. ¿Cuándo se usa __call__ una buena idea?
- 30. cambiar a mysqli una buena idea?
En general, diría que no. Pero depende de tus consultas. Mysql obviamente no tiene implementación de rutas de búsqueda, etc. que puede o no necesitar cuando se trabaja con gráficos. Si solo necesitas buscar en una profundidad limitada como 5-10, supongo que mysql está bien. Pero, de nuevo, realmente depende del tipo de * consultas * y * cambios dinámicos * que desee realizar con su gráfico. – vbence
¿Puede representar su gráfico como una jerarquía? – orangepips
No estoy seguro de qué quiere decir con el gráfico. Si tan solo algunos datos, y convertir a un gráfico cuando está buscando, almacene en mysql. Si almacena algún gráfico, diga archivos gif, que no solo depende de su gusto, sino también del lenguaje de programación. Delphi? ¿Java? Perl? php? Aplicación de escritorio.? Aplicación Web.? No es fácil darle sugerencias a menos que proporcione más información. – Weiyan