关于java通过driver连接Neo4j处理结果很慢的问题
发布于 5 年前 作者 sariel 2338 次浏览 来自 问答

Session session = getSession(); try { StatementResult result = session.run(cql); LOGGER.info(“run ending…”); recordList = result.list(); if (null == recordList || recordList.isEmpty()) { throw new BzException(" 该实体无关系。 "); } LOGGER.info("getCollectRelationList() end. "); } catch (BzException be) { throw new BzException(be.getMessage());

当前Neo4j库里存在900万个实体,cql为搜索某个实体的属性和关系实体,关系实体的搜索结果为900+个。 如上述代码,在session.run()时,只需要30ms;但是后续再StatementResult的list()方法时,需要耗时4s。 当把搜索关系的脚本去掉,只搜索当前实体,list()方法还是耗时1.5s左右,不知道大家有没有碰到过这种问题。

4 回复

大神们求解答啊

java-jdbc也试了一下,获取的结果跟连接mysql的时候是一样的,是一个类似于Iterator的ResultSet,同样在遍历的时候也很慢。

可以加索引

回到顶部