Spring Data Neo4j 5和应用程序启动时间

时间:2018-01-06 14:21:03

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

在我的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")提供的功能的情况下改善应用程序启动时间?

1 个答案:

答案 0 :(得分:4)

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

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