If you are looking for a graph database solution Neo4j is the way to go. It is the easiest and most robust solution to use on the market.
Even so, the community version is free and the community support around Neo4j is really good. The database performance is extremely fast.
The Neo4j native graph database delivers consistent, real-time performance for multi-hop queries on large, interconnected datasets.
Indexes and constraints can be added when desired, in order to gain performance and modeling benefits.
A graph database implements traversals and that’s precisely the reason for using indexes in a graph database. The goal is finding the started point of a graph traversal.
Once that point is found, the traversal is based on a graph structure to achieve high performance.
If you are doing data science, you can try the Neo4j Graph Data Science library for high performance graph analytics algorithms.