How can I optimize my Cypher Queries?

optimization
performance
cypher
knowledge-base
(Michael Hunger) #1

What should I do if my Cypher query is slower than expected, or uses more memory or CPU than I have?

I'm running my queries with Neo4j Browser, copied from my application.

What should I do? Are there any good practices / pointers?

PROFILE | EXPLAIN details
Speeding up query
(Michael Hunger) #2

There are a number of things you can do:

  1. Run your query with PROFILE or EXPLAIN. In the resulting query plan there are indications of expensive operations.
  2. Make sure that lookup operations by id or value (numeric range, text search) run on fields that are indexed.
  3. If you are running updates make sure that your updates handle batches of about 10k-100k records, if you have more, please batch them.

Share your queries and query plans (download and share the PNG) in this #neo4j-graph-platform:cypher category. Then others can help you.
It is also helpful to share your data-model and other statistics, and also the actual Cypher query.

There are already a number of performance related knowledge base posts available.

You can learn more here:

Cheers, Michael

1 Like
Better way to merge/match loading from csv
Data has been input by cmd, but I can't visualize it
Formatting new date time instances
How to process heterogeneous data sources (structure, semi structure and unstructured) in Neo4Js using Ontology driven data integration? Any help /reference is highly appreciated
Connecting nodes to build flight path routines
Browser Connection lost and never connects until restart and again dead in few seconds
Crear una aplicacion en php o java para ingresar dos datos a la base de datos neo4j
Importing Movie data from example data set on neoj4
Searching text from each record of MATCH output
(Michael Hunger) pinned #3