Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to not use neo4j?

Tags:

Neo4j is a great tool for mapping relational data, but I am curious what under what conditions it would not be a good tool to use.

In which use cases would using neo4j be a bad idea?

like image 918
Tim Ferrell Avatar asked May 08 '15 22:05

Tim Ferrell


1 Answers

You might want to check out this slide deck and in particular slides 18-22.

Your question could have a lot of details to it, but let me try to focus on the big pieces. Graph databases are naturally indexed by relationships. So graph databases will be good when you need to traverse a lot of relationships. Graphs themselves are very flexible, so they'll be good when the inter-connections between your data need to change from time to time, or when the data about your core objects that's important to store needs to change. Graphs are a very natural method of modeling some (but not all) data sources, things like peer to peer networks, road maps, organizational structures, etc.

Graphs tend to not be good at managing huge lists of things. For example, if you were going to build a customer transaction database with analytics (where you need 1 million customers, 50 million transactions, and all you do is post transactions all day long) then it's probably not a good fit. RDBMS is great at that, notice how that use case doesn't exploit relationships really.

Make sure to read those two links I provided, they have much more discussion.

like image 166
FrobberOfBits Avatar answered Nov 24 '22 17:11

FrobberOfBits