理解Neo4j中的索引 - 为什么需要重新取样?

时间:2018-05-04 21:53:56

标签: indexing neo4j

https://neo4j.com/docs/operations-manual/3.3/performance/statistics-execution-plans/,我们看到下表:

  

控制必须更新的索引的百分比   在触发新的采样运行之前。

"采样"意思?为什么更新使索引无效?我知道来自关系数据库的索引,在这种情况下,不需要维护索引(添加/删除行对应于在某些BTree中添加/删除节点)。

有人为什么需要重新采样Neo4j中的索引?

1 个答案:

答案 0 :(得分:3)

索引始终有效。

定期采样生成Cypher执行计划程序使用的统计信息,因此可以生成更适合数据库当前状态的计划。

引用operations manual(比你问题中的表稍早一点):

  

发出Cypher查询时,会将其编译为执行计划   可以运行并回答查询。 Cypher查询引擎使用   有关数据库的可用信息,例如架构信息   关于数据库中存在哪些索引和约束。 Neo4j也   使用有关数据库的统计信息来优化   执行计划。