In the Neo4j query tuning course, we learn the Hierarchy of accessibility
But, knowing that from version 4.3 we can now create index on a relationship property and therefore I guess anchor on a relationship, is this Hierarchy of accessibility outdated?
Here is the cost of access from least expensive to most expensive:
- Anchor node label, indexed anchor node properties
- Relationship degrees
- Relationship types and direction
- Non-indexed anchor node properties
- Downstream node labels
- Relationship properties, downstream node properties
Yes we just had this discussion internally.
Basically relationships are now also accessible by type and property, so equivalent to (1) when there is an index.
In your picture, anchor types correspond to indexed relationships?
I can see that you might simplify the hierarchy of accessibility model too.
And I'm guessing this it not the final form.
I can't wait for the new / updated query tuning course :)
I think, I might be wrong, node labels indexes must now be explicitly define in Neo4j 4.3.
Knowing that for a MATCH, only the anchor node will actually use labels indexes, for me this modification make sens and probably reduce the memory use by the graph. Downside is, it makes Neo4j a bit less user friendly in terms of speed when you don't know it.
But a explicit warning could be add to the browser to inform the new user.
Anyway thanks for the info.