0

在我的 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")

4

1 回答 1

4

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

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

于 2018-01-08T05:32:45.250 回答