在我的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")
提供的功能的情况下改善应用程序启动时间?
答案 0 :(得分:4)
您很可能是正确的,因为索引的创建和验证将花费与数据大小成比例的时间;换句话说,每次应用程序启动时,您拥有的数据越多,创建或验证索引所需的时间就越长。
创建索引是SDN的一个便捷功能。也就是说,鉴于添加或删除索引是一个相当罕见的事件,通常仅在添加或删除域实体或从空数据库开始时才会发生,另一个选项是删除@Index注释并创建Cypher用于创建或删除索引的脚本,仅根据需要执行Cypher脚本。这种方法允许应用程序尽可能快地启动,必须在需要时手动执行脚本,这大多数都是合理的平衡。