代码之家  ›  专栏  ›  技术社区  ›  CypherFancy

了解Neo4j中的指数-为什么需要重新采样?

  •  1
  • CypherFancy  · 技术社区  · 8 年前

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

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

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

    有人知道为什么Neo4j中的指数需要重新采样吗?

    1 回复  |  直到 8 年前
        1
  •  3
  •   cybersam    8 年前

    索引始终有效。

    定期采样生成Cypher execution planner使用的统计信息,以便生成针对数据库当前状态更为优化的计划。

    引用 operations manual (比您问题中的表格稍早):

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