Java Neo4j';s高级映射模式性能
我在SpringDataNeo4j项目中使用了Neo4j的简单和高级映射模式。因为我已经从简单映射切换到高级映射,所以项目的性能非常好,我的意思是比以前好多了。我没有确切的数字,但肯定有很多。有人能解释为什么高级映射模式优于简单映射吗 我已经阅读了SDN文档中的页面,但找不到确切的原因Java Neo4j';s高级映射模式性能,java,performance,neo4j,spring-data-neo4j,Java,Performance,Neo4j,Spring Data Neo4j,我在SpringDataNeo4j项目中使用了Neo4j的简单和高级映射模式。因为我已经从简单映射切换到高级映射,所以项目的性能非常好,我的意思是比以前好多了。我没有确切的数字,但肯定有很多。有人能解释为什么高级映射模式优于简单映射吗 我已经阅读了SDN文档中的页面,但找不到确切的原因 作为记录,我使用的是Spring的@Transactional支持。没错,因为高级映射只是围绕节点和关系的一个薄薄的包装,并写入db(以及读取)。简单映射将数据复制出和复制入。为了保持这种性能优势,只在事务中使用
作为记录,我使用的是Spring的@Transactional支持。没错,因为高级映射只是围绕节点和关系的一个薄薄的包装,并写入db(以及读取)。简单映射将数据复制出和复制入。为了保持这种性能优势,只在事务中使用高级映射,您会很高兴的
如果您开始修改事务之外的实体,您将获得脏对象跟踪,它将再次开始复制内容。我注意到,使用简单映射时,会有许多不必要的标签获取,即使不应该这样做。即使不使用@Fetch,SDN仍会(出于某种原因)为相关集合中的所有节点获取标签,在某些情况下甚至更进一步 例如,我有两个团队,大约有100名成员,并且团队也连接在一起(作为父子关系),并且@Fetch没有在任何地方使用,性能仍然很糟糕 因此,我切换到高级映射以消除不必要的标签获取。在我看来,简单映射不应该再可用了,因为它与新的基于标签的TypeRepresentationStrategy配合得太差了。看起来它已经不再适合标签了