【问题标题】:Spring Data Neo4j 5 and the application startup timeSpring Data Neo4j 5 及应用启动时间
【发布时间】:2018-01-06 14:21:03
【问题描述】:

在我的 Spring Data Neo4j 5 项目中,我有以下 Neo4j Java 配置:

@Bean
public org.neo4j.ogm.config.Configuration configuration() {

    // @formatter:off
    return new org.neo4j.ogm.config.Configuration.Builder()
            .autoIndex("assert")
            .credentials(username, password)
            .uri(serverDatabaseUri)
            .build();
    // @formatter:on

}

现在,随着我的 Neo4j 数据库内的数据增长,我在应用程序启动期间经历了显着的放缓。

我认为这个问题的可能原因之一可能是以下属性:

autoIndex("assert")

如何检查它是否正确 - 如何在不丢失autoIndex("assert") 提供的功能的情况下改善应用程序启动时间?

【问题讨论】:

    标签: neo4j spring-data-neo4j neo4j-ogm spring-data-neo4j-5


    【解决方案1】:

    您很有可能是对的,因为索引的创建和验证所花费的时间与您的数据大小成正比;换句话说,您拥有的数据越多,每次应用程序启动时创建或验证索引所需的时间就越长。

    索引创建是 SDN 的一项便捷功能。也就是说,鉴于索引的添加或删除是相当罕见的事件,通常仅在您添加或删除域实体或从空数据库开始时发生,另一种选择是删除 @Index 注释并创建一个 Cypher创建或删除索引并仅根据需要执行 Cypher 脚本的脚本。这种方法允许应用程序尽快启动,并在需要时必须手动执行脚本进行权衡,大多数人认为这是一个合理的平衡。

    【讨论】:

    • 这就是说我只想补充一点,总是可以选择使用autoIndex("validate") 来确保索引存在。 SDN/OGM @Index 和(至少)assert 的想法与 Hibernate 的 autoDDL 相当:它有利于开发,但不要在生产中使用繁重的操作。
    • 感谢您的回答!因此,换句话说,我可以将 LiquiGraph github.com/liquigraph/liquigraph 与我的 Spring Boot 应用程序一起使用,以声明任何方案更改和 autoIndex("validate") 以确保设置了正确的索引?
    • 再次感谢,我能够使用 LiquiGraph 和 autoIndex("validate") 解决这个问题
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多