- 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列插入重複的值