Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

É uma boa ideia usar MySQL e Neo4j juntos?


Algumas reflexões sobre isso:

Eu tentaria modelar seu modelo de domínio Neo4j para incluir os atributos de cada nó no gráfico. Ao separar seus dados em dois armazenamentos de dados diferentes, você pode limitar algumas operações que deseja fazer.

Eu acho que se resume ao que você vai fazer com o seu gráfico. Se, por exemplo, você deseja encontrar todos os nós conectados a um nó específico cujos atributos (ou seja, nome, idade... qualquer que seja) são determinados valores, primeiro você teria que encontrar o ID de nó correto em seu banco de dados MySQL e depois entrar em Neo4j? Isso parece lento e muito complicado quando você pode fazer tudo isso no Neo4j. Então a pergunta é:você precisará dos atributos de um nó ao percorrer o gráfico?

Seus dados mudarão ou são estáticos? Por ter dois armazenamentos de dados separados, isso complicará as coisas.

Embora gerar estatísticas usando um banco de dados MySQL possa ser mais fácil do que fazer tudo no Neo4j, o código necessário para percorrer um gráfico para encontrar todos os nós que atendem a um critério definido não é muito difícil. Quais são essas estatísticas devem orientar sua solução.

Não posso comentar sobre o desempenho da consulta MySQL para selecionar ids de nó. Acho que isso se resume a quantos nós você precisará selecionar e sua estratégia de indexação. Eu concordo sobre o lado do desempenho das coisas quando se trata de percorrer um gráfico.

Este é um bom artigo sobre isso:MySQL vs. Neo4j em um Percurso de gráfico de grande escala e neste caso, quando dizem grandes, significam apenas um milhão de vértices/nós e quatro milhões de arestas. Portanto, nem era um gráfico particularmente denso.