I've looked everywhere, and can't find an answer, or a clean way to test.
In the following scenario, would the Query result in more RAM usage after adding data to the Nodes?
Setup
UNWIND range(1,5) AS i
MERGE (t:Test {id: i, name: "test " + i})
MERGE (t2:Test {id: (i+2), name: "test " + (i+2)})
MERGE (t)-[:REL]->(t2)
Query in question
MATCH (t:Test)-[]-(u)
WHERE u.id > 3 AND t.id < 3
RETURN t.id, t.name
Add data
MATCH (t:Test)
SET t.data = [x IN range(1,5) | "Long text to signify large volume of complex properties "+x]
Questions
- Would adding that data increase the RAM utilization of the query?
- What if we changed the the query to
RETURN t
?
- When would the contents of the
data
property affect RAM utilization in the query?
@michael.hunger, can you answer this one? I'm at a critical turning point, and a time-sensitive stage in my project. While I can certainly roll with it either way, and just use more RAM, I'd rather know the impact of what I'm building.
Not sure I understand all.
The large text property will only affect ram usage if it's loaded (i.e. accessed) if it's not loaded then only small properties (numbers, booleans, short texts) will be pull into memory if you access these properties
if you return t
then the large property is loaded too.
You should be able to use the memory usage of operators in 4.1.x in the PROFILE of your query see
1 Like
Profiling my example query never included any memory usage data.
...but, it turns out I was just using an older version of the Browser. The newer one includes memory utilization. And the results were exactly what you were describing.