如何解决如何提高Neo4j的查询效率?
我需要使用apoc.export.cyphe.data()函数导出数据库的一部分。 这是我用来调用该函数的代码:
client.setRequestHeader("Authorization","Basic " + btoa("username:password"));
问题在于查询 匹配路径=(p1:作者)-[r:CO_AUTHORSHIP]-(p2:作者) 需要一个多小时!
我有一个具有467437 CO_AUTHORSHIP关系的数据库。数据库的每个节点代表一个作者。对于每个关系边缘,我都存储由两位作者撰写的文章数据(文章数量,类型,地点,标题和年份)。
解决方法
您的查询将每个Author
多次放入export_nodes
,并且将每个CO_AUTHORSHIP
关系多次放入export_rels
。这应该更快并且使用更少的内存:
MATCH path = (a:Author)-[r:CO_AUTHORSHIP]-()
WITH COLLECT(DISTINCT a) AS export_nodes,COLLECT(DISTINCT r) AS export_rels
CALL apoc.export.cypher.data(
export_nodes,export_rels,'/tmp/export.cypher',{format:'cypher-shell',cypherFormat: 'updateAll'}) YIELD nodes,relationships,time
RETURN nodes,time
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。