개발/Neo4j

    [Neo4j] Neo4j의 메모리 구성

    [Neo4j] Neo4j의 메모리 구성

    DBMS의 성능에 가장 많이 영향을 미치는 config는 아무래도 메모리 일 것이다. 그렇기에 오늘은 Neo4j의 메모리 configuration을 공부해보고자 한다. 다음 글은 Neo4j 공식문서를 바탕으로 구성한 글이다. Neo4j Memory Mangement OS memory OS를 위해 남겨놓는 memory 공간을 의미한다. 이는 Neo4j가 사용하는 memory가 swap되지 않게 하기 위해서 남겨놓아야 한다. JVM heap Neo4j는 java기반 언어이기 때문에 JVM Heap을 위한 메모리가 존재해야한다. JVM Heap이란 Java에서 동적으로 생성되는 객체들이 저장되는 공간이다. 해당 메모리는 JVM Heap영역이기 때문에 Neo4J가 관리하지 않고 Java의 garbage coll..

    [Neo4j] Cypher Query - (1)

    Neo4J에서는 SQL이 아닌 Cypher라는 선언형 프로그래밍 언어를 통해 DBMS에 질의를 하게 된다. 이번 글은 DBMS 질의어의 기본인 생성, 검색, 수정, 삭제에 대한 Cypher문을 공부해보고자 한다. CREATE CREATE는 노드및 관계 를 생성하는데 사용되는 문법이다. 다음은 노드를 생성하는데 사용되는 명령문의 예시이다. CREATE (ee:Person {name: 'Emil', from: 'Sweden', kloutScore: 99}) > ()안에는 이러한 노드에 대한 정보가 들어가게 된다. > ee:Person에서 ee는 노드 variable에 해당하고 Person은 노드 Label에 해당한다. Node Label Label이 같은 노드들은 같은 set에 묶이게 되고 이러한 set을 ..

    [Neo4j] Neo4j Docker Compose

    [Neo4j] Neo4j Docker Compose

    Neo4j configuration은 진짜 많다. 이는 다음 링크에서 확인할 수 있지만 오늘은 간략한 시작방법만 정리해보고자 한다.https://neo4j.com/docs/operations-manual/current/docker/ref-settings/ Docker-specific configuration settings - Operations ManualA conversion table for the Neo4j configuration settings to the Docker format.neo4j.comdocker run다음 command를 통해 neo4j docker를 run시킬 수 있다.docker run \ --name testneo4j \ -p7474:7474 -p7687:7687..

    [Neo4j] 그래프 데이터베이스란?

    [Neo4j] 그래프 데이터베이스란?

    Graph Database의 필요성 기존에 우리가 사용하는 관계형 데이터 베이스는 객체간의 관계를 join을 통해 표현을 하곤했다. 하지만 관계의 수와 유형이 늘어나면 늘어날 수록 join은 관계들을 효과적으로 처리하지 못하게 된다. 이는 SNS를 생각하면 쉽게 이해가 되는데 우리가 LinkedIn에서 특정인의 follow수를 counting하고자 한다면 회원 정보의 테이블과 팔로우-팔로잉 관계를 나타내는 테이블을 조인하여 우리가 원하는 특정인의 팔로우 목록을 긁어오거나 저 두 단계를 순차적으로 처리해야할 것이다. 아무리 빨라도 불필요한 연산이 들어가 연산의 속도가 느려짐은 명백하다. 이외에도 - 보다 복잡한 계층적인 관계를 표현해야한다 - 관계성이 보이지 않는 객체들 사이의 관계를 파악해야한다. - 상..