Neo4j权威指南之Cypher查询调优

基础知识补充:模式(patterns)java

  • 能够讲不少节点和关系编码成任意复杂的想法
  • Cypher很依赖模式
  • 将节点和关系的语法组合在一块儿能够表达模式
  • 加强模块性,减小重复,能够给模式赋值变量
  • 模式就是一组节点和关系的组合
acted_in = (:Person)-[:ACTED_IN]->(:Movie)

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《性能优化

一、手动查询性能优化总目标:只从图中检索必要数据性能

二、没必要要的数据,尽量早的过滤掉,减小后期处理的数据量优化

三、避免返回整个节点,返回其中须要的数据编码

四、设置可变长度模式的一个上限值,避免包含大量不须要的数据部分code

五、Cypher会为每一个查询转为一个执行计划索引

  • 使用参数代替字面值,这样能够复用执行计划

六、Neo4j两种执行计划策略资源

(1)规则编译

  • 查询计划器产生查询计划的规则
  • 会使用全部可用索引,但不实用统计信息指导查询编译

(2)成本性能分析

七、查询性能分析

(1)EXPLAIN

  • 仅仅查看执行计划,不执行语句

(2)PROFILE

  • 运行语句,并全程监督资源使用状况

八、USING 语句

  • 为一个查询构建执行计划时,影响计划器的决定

九、可使用USING 使得计划器选择一个特定的开始节点

十、提示器分三种:

(1)索引提示

(2)扫描提示

  • 强制Cypher不使用本应使用的索引,而使用标签扫描

(3)链接提示

  • 再没有更好的开始点的状况下,可能选择不好的开始点
  • 链接提示强制选择开始点

相关文章
相关标签/搜索