How to optimize the performance of scanning edge data

I have a graph that has 80 million vertexes and 30 million edges. I need to scan all the edge data, including the ids of its starting and ending vertexes.But the performance is poor and I need to optimize it.

This is my query:

MATCH (v)-[e:E1]->(n) RETURN id(v) AS starting, id(n) AS ending, e.prop1, e.prop2,...

Can anyone give some ideas on optimization or possible solutions for this scenario?

The query is fairly straight forward. Are you trying to return millions of rows of data in neo4j browser? If so, maybe try cypher-shell instead.

https://neo4j.com/docs/operations-manual/current/tools/cypher-shell/

Neo4j Version: 3.5

Operating System: Ubuntu 20.04 / Docker

API: Cypher