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

Er det en god idé at bruge MySQL og Neo4j sammen?

Nogle tanker om dette:

Jeg ville prøve at modellere din Neo4j-domænemodel for at inkludere attributterne for hver knude i grafen. Ved at adskille dine data i to forskellige datalagre kan du muligvis begrænse nogle handlinger, som du måske ønsker at udføre.

Jeg tror, ​​det kommer ned til, hvad du vil gøre med din graf. Hvis du f.eks. ønsker at finde alle de noder, der er forbundet til en specifik node, hvis attributter (dvs. navn, alder.. uanset) er bestemte værdier, skal du først finde det korrekte node-id i din MySQL-database og derefter gå ind i Neo4j? Dette virker bare langsomt og alt for kompliceret, når du kunne gøre alt dette i Neo4j. Så spørgsmålet er:skal du bruge attributterne for en node, når du krydser grafen?

Vil dine data ændre sig, eller er de statiske? Ved at have to separate datalagre vil det komplicere sagerne.

Selvom det kan være lettere at generere statistik ved hjælp af en MySQL-database end at gøre alt i Neo4j, er koden, der kræves for at krydse en graf for at finde alle de noder, der opfylder et defineret kriterium, ikke alt for vanskelig. Hvad disse statistikker er, bør drive din løsning.

Jeg kan ikke kommentere ydeevnen af ​​MySQL-forespørgslen for at vælge node-id'er. Jeg gætter på, at det kommer ned på, hvor mange noder du skal vælge og din indekseringsstrategi. Jeg er dog enig med hensyn til ydeevnesiden af ​​tingene, når det kommer til at krydse en graf.

Dette er en god artikel om netop dette:MySQL vs. Neo4j på en Grafgennemgang i stor skala og i dette tilfælde, når de siger stor, betyder de kun en million hjørner/knuder og fire millioner kanter. Så det var ikke engang en særlig tæt graf.



  1. COALESCE i laravel

  2. Indlejrede klasser - CustomRowMapper !! Ikke et problem længere !! - Del 1

  3. SqlBulkCopy fra en liste<>

  4. Postgresql håndhæver unik to-vejs kombination af kolonner