When is a graph database (like Neo4j) not a good use? [closed] When is a graph database (like Neo4j) not a good use? [closed] database database

When is a graph database (like Neo4j) not a good use? [closed]


Currently I would not use Neo4j in a high volume write situation. The writes are still limited to a single machine, so you're restricted to a single machine's throughput, until they figure out some way of sharding (which is, by the way, in the works). In high volume write situations, you would probably look at some other store like Cassandra or MongoDB, and sacrifice other benefits a graph database gives you.

Another thing I would not currently use Neo4j for is full-text search, although it does have some built-in facility (as it uses Lucene for indexing under the hood), it is limited in scope and difficult to use from the latest Cypher. I understand that this is going to be improving rapidly in the next couple of releases, and look forward to that. Something like ElasticSearch or Solr would do a better job for FTS-related things.

Contrary to popular belief, tabular data is often well-fitted to the graph, unless you really have very denormalized data, like log records.

The good news is you can take advantage of many of these things together, picking the best tool for the job, and implement a polyglot persistence solution to answer your questions the best way possible.


Also, I would not use neo4j for serving and storing binary data. There are much better options for images, videos and large text documents out there - use them either as indexes with Neo4j, or just reference them.


When would a graph database not be the best solution?

  1. When you work in a conservative company.
  2. Insert some well thought-out technical reason here.