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

Cypher中匹配子句约束使用的差异

  •  0
  • skrl  · 技术社区  · 8 年前

    MATCH (p:Person {name:'Alice'})
    RETURN p
    

    MATCH (p:Person)
    WHERE p.name = 'Alice'
    RETURN p
    

    我知道结果是一样的,

    但是查询的执行方式有什么不同吗?

    2 回复  |  直到 8 年前
        1
  •  2
  •   logisima    8 年前

    这两个查询之间没有区别,执行计划将是相同的。

    干杯

        2
  •  0
  •   Antimony Jeff Evernham    8 年前

    这个问题已经有了一个可接受的答案,但对于“查询X和查询Y是否相同?”这样的其他问题,可以查看他们的执行计划进行比较。

    要在不运行查询的情况下查看执行计划,请添加 EXPLAIN 在查询和运行它之前,您将看到将使用哪些运算符和顺序来计算结果。这样做的缺点是行数的估计值可能会被关闭,因此可以通过添加 PROFILE 在实际运行查询的查询之前。然后通过比较运算符和每个操作的结果,可以得出查询X和查询Y是否相同的结论。

    在两个查询中,执行计划如下所示

    execution plan