neo4j性能优化方向
发布于 6 个月前 作者 daydayup 970 次浏览 来自 问答

match Path=(n)<-[:属于*…13]-(m) return Path; match Path=(n)<-[:属于*…13]-(m) return count (Path); 从给定点出发,指定关系,指定方向,遍历13层, 若 return count (Path),耗时ms级,count (Path)为20w左右; 若 return Path,耗时需要900s。

:已将图数据全部加载到内存中(亿级别节点,亿级关系),服务器128G内存,16核 原以为将图数据全部缓存到内存中可以大大加快速度,现看来查询速度仍不满足需求。 大家有没有什么好的优化建议,留言一起参考下?

3 回复

虽然想不到优化建议,但是比较好奇是什么需求,需要遍历13层,哈哈。感觉使用邻接表性能会好很多

不过产品确实提了这个需求,你说咋办?笑哭。。。

  1. 查询语句可以优化,如果深度可以优化,性能提升会很大,最好可以指定深度,而不是1-13层深度,如果无法避免,最好指定一个节点开始 可以使用分页
  2. 把属性为汉字的全换成英文,编码转换neo4j没有优化,很耗时
  3. 使用SSD
  4. 开机时使用热部署

我在奇怪什么样的业务需要查询13层? 模型的结构可以优化吗

回到顶部