显式检查属性是否存在
根据 openCypher 语义,当访问属性时,它等同于可选联接,即使该属性不存在,也必须保留所有行。如果您根据图表架构知道该实体将始终存在特定属性,则显式检查该属性的存在可以让查询引擎创建最佳计划并提高性能。
考虑一个图形模型,其中类型 person 的节点始终具有属性 name。不应进行如下查询:
MATCH (n:person) RETURN n.name
而应在查询中通过 IS NOT NULL 检查显式验证该属性是否存在:
MATCH (n:person) WHERE n.name IS NOT NULL RETURN n.name