sql >> Databáze >  >> NoSQL >> Redis

Pokud použijeme MongoDB jako naši hlavní databázi, mám k implementaci vztahů mezi entitami použít samostatnou grafovou databázi?

Mike,

měli byste být schopni uložit data o vašich vztazích do databáze grafů. Jeho vysoký výkon při procházení velkých grafů pochází z lokality, tj. nespouštíte dotazy globálně, ale spíše spouštíte sadu uzlů (které se ve vašem případě rovnají dokumentům, které jsou vyhledány indexem. Můžete dokonce uložit start-node- ID pro rychlý přístup k vašim mongo dokumentům). Odtud můžete procházet libovolně velké cesty v konstantním čase (wrt data set size).

Jaké jsou vaše další požadavky (tj. velikost datové sady, počet souběžných přístupů atd., složitost vztahu/grafu).

Vaše dotazy se opravdu dobře hodí do databáze grafů a lze je snadno vyjádřit.

Navrhoval bych, abyste si vzali graphdb, jako je neo4j, a udělali rychlý skok se svou doménou, abyste si ověřili obecnou proveditelnost a také zjistili další otázky, na které byste rádi odpověděli, než investujete do druhé technologie.

P.S. Pokud jste ještě nezačali, mohli jste také přejít na čistě graphdb přístup, protože grafové databáze jsou nadmnožinou databází dokumentů. A stejně byste raději mluvili o doméně než jen o obecných dokumentech. (Např. structr je CMS postavený na Neo4j).



  1. Příliš mnoho otevřených souborů při zajištění indexového mongo

  2. Jak používat příkaz HSCAN v Redis?

  3. Porozumění ukládání do mezipaměti Laravel:Fasáda mezipaměti a Redis

  4. Apache Phoenix pro CDH