sql >> Databasteknik >  >> RDS >> Mysql

Är det en bra idé att använda MySQL och Neo4j tillsammans?

Några tankar om detta:

Jag skulle försöka modellera din Neo4j-domänmodell för att inkludera attributen för varje nod i grafen. Genom att separera dina data i två olika datalager kan du begränsa vissa operationer som du kanske vill göra.

Jag antar att det beror på vad du kommer att göra med din graf. Om du till exempel vill hitta alla noder kopplade till en specifik nod vars attribut (dvs namn, ålder.. oavsett) är vissa värden, måste du först hitta rätt nod-ID i din MySQL-databas och sedan gå in i Neo4j? Det här verkar bara långsamt och alltför komplicerat när du kunde göra allt detta i Neo4j. Så frågan är:kommer du att behöva attributen för en nod när du korsar grafen?

Kommer din data att förändras eller är den statisk? Genom att ha två separata datalager kommer det att komplicera saken.

Även om det kan vara lättare att generera statistik med hjälp av en MySQL-databas än att göra allt i Neo4j, är koden som krävs för att gå igenom en graf för att hitta alla noder som uppfyller ett definierat kriterium inte alltför svår. Vad denna statistik är bör driva din lösning.

Jag kan inte kommentera prestandan för MySQL-frågan för att välja nod-ID. Jag antar att det beror på hur många noder du behöver välja och din indexeringsstrategi. Jag håller dock med om prestandasidan när det gäller att korsa en graf.

Det här är en bra artikel om just detta:MySQL vs. Neo4j på en Storskalig grafgenomgång och i det här fallet, när de säger stor, menar de bara en miljon hörn/noder och fyra miljoner kanter. Så det var inte ens en särskilt tät graf.



  1. Definiera en en-till-en-relation i SQL Server

  2. Rekonstruera Standby DB

  3. FEL i PDO:Anrop till en medlemsfunktion prepare() på null

  4. förstå mysql förklara