Cypher projection in GDS are slower, but in which way?
Is it the creation of the projection itself who is slower, or applying an algo on the projection will be slower, or both I guess?
Cypher projection in GDS are slower, but in which way?
Is it the creation of the projection itself who is slower, or applying an algo on the projection will be slower, or both I guess?
its only during creation, and with the latest cypher projection it depends on your projection.
Especially if you need to filter the graph upfront, cypher projection can be even faster.
Best to just try both and see whats works best in your workload.
Thank you @florentin_dorre
I'm lucky to be answered by the staff today
So if I understand, these projections (native, cypher, maybe even apache arrow) are producing the same output. A unique in-memory format having the same processing performance for any given algo? The only difference lies in the creation of the projection itself.
Do you have any links where I could read more about the difference between this in-memory format and the one used by the neo4j database ?
Thank you for your answer, that's all I needed.
Exactly, they produce the same output with the same underlying data structures.
Not sure if there is a good comparison written down somewhere. Essentially its optimized for different use cases. I only know of the intro in Graph management - Neo4j Graph Data Science
The neo4j db is optimized for transactions, single point queries.
GDS graphs are optimized for analytical access, iterating over the whole data multiple times. The data lives in-memory. As we have limited updates, we can also compress the data a lot better.
I think the documentation or course about it needs a correction, the way the course is talking about it, cypher projections are seen has being the thing to avoid, procuding bad result, which is not that right.