Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Usando o MongoDB como nosso banco de dados mestre, devo usar um banco de dados gráfico separado para implementar relacionamentos entre entidades?


Mike,

você deve ser capaz de armazenar seus dados de relacionamento no banco de dados gráfico. Seu alto desempenho em percorrer grandes gráficos vem da localidade, ou seja, você não executa consultas globalmente, mas inicia um conjunto de nós (que são documentos iguais no seu caso, que são pesquisados ​​por um índice. você pode até armazenar start-node- ids para acesso rápido em seus documentos mongo). A partir daí, você pode percorrer caminhos arbitrariamente grandes em tempo constante (tamanho do conjunto de dados wrt).

Quais são seus outros requisitos (ou seja, tamanho do conjunto de dados, número de acessos simultâneos, etc., complexidade de relacionamento/gráfico).

Suas consultas são realmente adequadas para o banco de dados de gráficos e facilmente expressáveis ​​em seus termos.

Eu sugiro que você pegue um graphdb como o neo4j e faça um pico rápido com seu domínio para verificar a viabilidade geral e também descobrir perguntas adicionais que você gostaria de ter respondido antes de investir na segunda tecnologia.

P.S. Se você ainda não tivesse começado, também poderia ter optado por uma abordagem pura do graphdb, pois os bancos de dados de gráficos são um superconjunto de bancos de dados de documentos. E você prefere falar de domínio no seu caso do que apenas documentos genéricos. (Por exemplo, structr é um CMS construído em cima do Neo4j).