- Neo4j SQL支持节点或关系属性上的索引,以提高应用程序的性能。
- 我们可以为具有相同标签名称的所有节点的属性创建索引。
- 我们可以在MATCH或WHERE或IN运算符上使用这些索引列来改进CQL Command的执行。
Neo4J索引操作
- Create Index 创建索引
- Drop Index 丢弃索引
- 语法
CREATE INDEX ON :<label_name> (<property_name>)
语法描述它在节点或关系的<label_name>的<property_name>上创建一个新索引。
示例
CREATE (e:Customer{id:“1001”,name:“Abc”,dob:“01/10/1982”})
创建索引
create index on :Customer (name) # 此时在e节点的name字段创建了索引
删除索引
drop index on :Customer(name) #删除name字段的索引
UNIQUE约束
- 在Neo4j数据库中,CQL CREATE命令始终创建新的节点或关系,这意味着即使您使用相同的值,它也会插入一个新行,根据我们对某些节点或关系的应用需求,我们必须避免这种重复。 然后我们不能直接得到这个,我们应该使用一些数据库约束来创建节点或关系的一个或多个属性的规则。
- 像SQL一样,Neo4j数据库也支持对NODE或Relationship的属性的UNIQUE约束
UNIQUE约束的优点
- 避免重复记录。
- 强制执行数据完整性规则。
- 创建唯一约束语法
CREATE CONSTRAINT ON (<label_name>)
ASSERT <property_name> IS UNIQUE
语法说明:
示例
CREATE (cc:CreditCard{id:“5001”,number:“1234567890”,cvv:“888”,expiredate:“20/17”})
CREATE (cc:CreditCard{id:“5002”,number:“1234567880”,cvv:“886”,expiredate:“20/17”})
CREATE (cc:CreditCard{id:“5003”,number:“1234567870”,cvv:“884”,expiredate:“20/17”})
创建唯一约束
CREATE CONSTRAINT ON (cc:CreditCard)
ASSERT cc.id IS UNIQUE # 此时在id列上创建了唯一约束,此时不能再插入重复的值否则会报错,tips如果表内该字段有重复数据则无法建立唯一约束
删除唯一约束
DROP CONSTRAINT ON (cc:CreditCard)
ASSERT cc.id IS UNIQUE #此时删掉了唯一约束 可以向该节点的id列插入重复的值