Spring 数据 Neo4j 5 和应用程序启动时间
Spring Data Neo4j 5 and the application startup time
在我的 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")
提供的功能的情况下缩短应用程序启动时间?
很可能您是对的,因为索引的创建和验证将花费与数据大小成正比的时间;换句话说,您拥有的数据越多,每次应用程序启动时创建或验证索引所需的时间就越长。
索引创建是SDN的一个便捷功能。也就是说,鉴于添加或删除索引是一个相当罕见的事件,通常仅在您添加或删除域实体或从空数据库开始时发生,另一种选择是删除 @Index 注释并创建一个 Cypher创建或删除索引并仅在需要时执行 Cypher 脚本的脚本。这种方法允许应用程序尽快启动,但必须在需要时手动执行脚本,大多数人认为这是一个合理的平衡。
在我的 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")
提供的功能的情况下缩短应用程序启动时间?
很可能您是对的,因为索引的创建和验证将花费与数据大小成正比的时间;换句话说,您拥有的数据越多,每次应用程序启动时创建或验证索引所需的时间就越长。
索引创建是SDN的一个便捷功能。也就是说,鉴于添加或删除索引是一个相当罕见的事件,通常仅在您添加或删除域实体或从空数据库开始时发生,另一种选择是删除 @Index 注释并创建一个 Cypher创建或删除索引并仅在需要时执行 Cypher 脚本的脚本。这种方法允许应用程序尽快启动,但必须在需要时手动执行脚本,大多数人认为这是一个合理的平衡。