티스토리 뷰
이번에는 성능 향상을 위한 인덱스 및 제약사항에 대해서 살펴보겠다.
1. 단일 인덱스 생성
CREATE INDEX person_name FOR (n:Person) ON (n.name)
인덱스명이 person_name이고 이 인덱스는 레이블이 Person인 노드의 name 프로퍼티에 생성되는 쿼리이다.
2. 인덱스 목록 보기
CALL db.indexes
3. 인덱스 삭제
DROP INDEX person_name
4. 복합 인덱스 생성
CREATE INDEX person_nameAndAge FOR (n:Person) ON (n.name, n.age)
인덱스명은 person_nameAndAge이고 Label이 Person인 노드의 name과 age property로 복합 인덱스를 생성하는 쿼리이다.
Cypher 3.5 버전에서 equality check 나 list의 요소인지 check만 가능했으나 4.0에서는 단일 인덱스에서 사용하는 모든 조건자를 지원한다. (제약 사항은 있음)
조건자는 아래와 같다.
- equality check: n.prop = value
- list membership check: n.prop IN list
- existence check: exists(n.prop)
- range search: n.prop > value
- prefix search: STARTS WITH
- suffix search: ENDS WITH
- substring search: CONTAINS
제약사항에 대한 내용은
https://neo4j.com/docs/cypher-manual/4.0/administration/indexes-for-search-performance/#administration-indexes-single-vs-composite-index
를 참조하면 정확하게 파악할 수 있다.
다음으로는 제약사항에 대해 살펴보도록 하자.
1. 제약사항 생성
CREATE CONSTRAINT unique_person_ssn ON (n:Person) ASSERT n.ssn IS UNIQUE
레이블이 Person인 노드의 ssn 프로퍼티를 유니크한 값으로 하겠다는 쿼리이다.
이렇게 제약사항을 주게 되면 ssn 프로퍼티가 유일키가 되는 셈이 된다.
2. 제약사항 목록 보기
CALL db.constraints
3. 제약사항 삭제
DROP CONSTRAINT unique_person_ssn
이상으로 인덱스와 제약사항에 대해 살펴보았다.
참조 :
https://neo4j.com/docs/cypher-manual/4.0/
'Neo4j' 카테고리의 다른 글
Neosemantics (0) | 2020.06.17 |
---|---|
IMPORT CSV (2) | 2020.06.17 |
Cypher - MATCH (2) (0) | 2020.06.15 |
Cypher - MERGE (1) | 2020.06.15 |
Cypher - REMOVE & DELETE (0) | 2020.06.15 |
- Total
- Today
- Yesterday
- stardog
- Linked Data
- neosemantics
- Ontology
- Thymeleaf
- cypher
- 그래프 데이터베이스
- 타임리프
- pyvis
- LOD
- 사이퍼
- sparql
- TBC
- 장고
- 지식 그래프
- 스프링부트
- TopBraid Composer
- property graph
- Neo4j
- Knowledge Graph
- TDB
- 지식그래프
- 트리플
- 트리플 변환
- RDF
- django
- RDF 변환
- networkx
- 온톨로지
- rdfox
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |