title: How to explain improving speed with larger data in Neo4j Cypher?
body: <p>I make experiments with querying Neo4j data whose size gradually increases. Some of my query expressions behave as I would expect - a larger graph means a longer execution time. But, e.g., the query</p>
  <pre><code>MATCH (`g`:Graph)
  MATCH (`g`)&lt;-[:`Graph`]-(person)-[:birthPlace {Value: &quot;http://persons/data/birthPlace&quot;}]-&gt;(place)-[:`Graph`]-&gt;(`g`)
  WITH count(person.Value) AS persons, place
      WHERE persons &gt; 5 
  RETURN place.Value AS place, persons 
  ORDER BY persons
  </code></pre>
  <p>has these execution times (in ms):
  |80.2   |208.1  |301.7  |399.23 |0.1    |2.07   |2.61   |2.81   |7.3    |1.5  |.</p>
  <p>How to explain the rapid acceleration from the fifth step? The data are the same, just extended; no indexes were created.</p>
  <p>The data on 4th experiment:
  201673 nodes,
  601189 relationships,
  859225 properties.</p>
  <p>The data size on the 5th experiment:
  242113 nodes,
  741500 relationships,
  1047060 properties.</p>
  <p>All I can think about is that maybe Cypher will start using some indexes from a certain data size, but I can't find anywhere if that's the case.</p>
  <p>Thank you for any comments.</p>