Mysql
 sql >> Database >  >> RDS >> Mysql

È una buona idea usare MySQL e Neo4j insieme?

Alcuni pensieri su questo:

Proverei a modellare il tuo modello di dominio Neo4j per includere gli attributi di ciascun nodo nel grafico. Separando i tuoi dati in due archivi dati diversi potresti limitare alcune operazioni che potresti voler fare.

Immagino che dipenda da cosa farai con il tuo grafico. Se, ad esempio, vuoi trovare tutti i nodi collegati a un nodo specifico i cui attributi (es. nome, età.. qualunque cosa) sono determinati valori, dovresti prima trovare l'ID del nodo corretto nel tuo database MySQL e poi andare in Neo4j? Questo sembra solo lento ed eccessivamente complicato quando potresti fare tutto questo in Neo4j. Quindi la domanda è:avrai bisogno degli attributi di un nodo quando attraversi il grafico?

I tuoi dati cambieranno o sono statici? Avere due archivi dati separati complicherà le cose.

Mentre generare statistiche utilizzando un database MySQL potrebbe essere più semplice che fare tutto in Neo4j, il codice richiesto per attraversare un grafico per trovare tutti i nodi che soddisfano un criterio definito non è eccessivamente difficile. Quali sono queste statistiche dovrebbero guidare la tua soluzione.

Non posso commentare le prestazioni della query MySQL per selezionare gli ID dei nodi. Immagino che dipenda dal numero di nodi che dovrai selezionare e dalla tua strategia di indicizzazione. Tuttavia, sono d'accordo sul lato delle prestazioni quando si tratta di attraversare un grafico.

Questo è un buon articolo proprio su questo:MySQL vs. Neo4j su un Attraversamento grafico su larga scala e in questo caso, quando si dice grande, significano solo un milione di vertici/nodi e quattro milioni di archi. Quindi non era nemmeno un grafico particolarmente denso.