一、Neo4j CQL - 索引
Neo4j SQL支持节点或关系属性上的索引,以提高应用程序的性能。
我们可以为具有相同标签名称的所有节点的属性创建索引。
我们可以在MATCH或WHERE或IN运算符上使用这些索引列来改进CQL Command的执行。
1.1、Neo4J索引操作
- Create Index 创建索引
- Drop Index 丢弃索引
1.2、创建索引语法:
Neo4j的CQL提供“CREATE INDEX”命令创建的节点或关系的属性索引。
1.3、创建索引的语法:
CREATE INDEX ON :<label_name> (<property_name>)
注意:
冒号(:)运算符用于引用节点或关系标签名称。
上述语法描述它在节点或关系的<label_name>的<property_name>上创建一个
1.4、创建索引
使用CREATE INDEX ON可以在拥有某个标签的所有节点的某个属性上创建索引。注意,索引是在后台创建,并不能立刻就生效。
CREATE INDEX ON :Person(name) |
本例在拥有Person标签的所有节点的name属性上创建了索引。
1.5、使用索引
通常不需要在查询中指出使用哪个索引,Cypher自己会决定。例
MATCH (person:Person { name: 'Andres' }) RETURN person |
在WHERE等式中使用索引
在WHERE语句中的对索引的属性进行相等比较时,索引将自动被使用。
MATCH (person:Person) WHERE person.name = 'Andres' RETURN person |
使用WHERE不等式中使用索引
在WHERE语句中的对索引的属性进行不等(范围)比较时,索引将自动被使用。
MATCH (person:Person) WHERE person.name > 'B' RETURN person |
在 IN中使用索引
下面查询中针对 person.name的IN断言将使用Person(name)索引。
MATCH (person:Person) WHERE person.name IN ['Andres', 'Mark'] RETURN person |
在STARTS WITH中使用索引
下面的查询语句在针对person.name的STARTS WITH断言将使用Person(name)索引。
查询