sql >> Databáze >  >> RDS >> Mysql

Je dobrý nápad používat MySQL a Neo4j společně?

Několik myšlenek na toto:

Zkusil bych modelovat váš model domény Neo4j tak, aby zahrnoval atributy každého uzlu v grafu. Rozdělením dat do dvou různých datových úložišť můžete omezit některé operace, které byste mohli chtít provádět.

Myslím, že jde o to, co budete dělat se svým grafem. Pokud například chcete najít všechny uzly připojené ke konkrétnímu uzlu, jehož atributy (tj. jméno, věk... cokoli) jsou určité hodnoty, museli byste nejprve najít správné ID uzlu ve vaší databázi MySQL a poté přejít do Neo4j? Zdá se to být pomalé a příliš složité, když tohle všechno můžete dělat v Neo4j. Otázka tedy zní:budete při procházení grafu potřebovat atributy uzlu?

Změní se vaše data nebo jsou statická? Tím, že budeme mít dvě oddělená úložiště dat, bude to komplikovat.

I když generování statistik pomocí databáze MySQL může být jednodušší než dělat vše v Neo4j, kód potřebný k procházení grafu k nalezení všech uzlů, které splňují definovaná kritéria, není příliš obtížný. Jaké jsou tyto statistiky, měly by být základem vašeho řešení.

Nemohu komentovat výkon dotazu MySQL pro výběr ID uzlů. Myslím, že to záleží na tom, kolik uzlů budete muset vybrat, a na vaší strategii indexování. Souhlasím však s výkonnostní stránkou věcí, pokud jde o procházení grafu.

Toto je dobrý článek právě o tomto:MySQL vs. Neo4j na Procházení velkým grafem a v tomto případě, když říkají velké, znamenají pouze milion vrcholů/uzlů a čtyři miliony hran. Takže to ani nebyl zvlášť hustý graf.



  1. Funkce MySQL ACOS() – Vrátí úhlový kosinus čísla

  2. Oznamujeme repmgr 2.0RC2

  3. Jak obnovit důvěru v omezení cizího klíče v SQL Server (příklady T-SQL)

  4. Mohl by někdo vysvětlit, co příkaz MERGE skutečně dělá v Oracle?