데이터베이스

    Real MongoDB - (1)

    1. MongoDB 데이터베이스 트렌드 기존의 데이터베이스 관리 시스템은 RDBMS가 중심, but 구글이나 페이스북과 같은 글로벌 서비스를 제공하는 회사가 늘어나면서 방대한 양의 데이터를 충분히 빠른 속도로 처리할 수 있는 데이터베이스에 대한 필요성이 생김. HBase, 카산드라 등장 -> 자바 언어로 개발되어 GC가 부담, 또한 클러스터 구축을 위한 컴포넌트가 너무 많아 관리 및 트러블 슈팅이 상대적으로 어려움. MongoDB는 온라인 서비스에 필요한 블록 캐시, 보조 인덱스, 동시성 처리를 위한 스킵리스트, 하자드 포인터 등의 특성을 가지고 있음. WiredTiger 스토리지 엔진을 주로 사용 (아직 무슨말인지 잘 모르겠네요 ㅠ) MongoDB vs RDBMS MongoDB는 쿼리 결과로 커서를 반..

    MySQL의 격리수준

    일반적으로 database를 공부하다 보면 아래와 같은 표의 형식으로 4가지 격리수준을 공부하게 된다. 보통, Repeatable Read 수준에선 Phantom Read가 발생하는 것으로 알려져있다. 하지만 MySQL의 스토리지 엔진으로 InnoDB Engine을 사용하게 되면 Phantom Read가 발생하지 않는다. 이를 이해하기 위해선 MySQL의 InnoDB 스토리지 엔진의 Lock과 MVCC(Multi Version Concurrency Control)이라는 개념을 이해해야 한다. InnoDB Lock InnoDB는 Lock을 인덱스에 거는 특징이 있다. 인덱스가 없는 테이블이어도 내부적으로 생성한 인덱스를 사용해 잠금을 설정한다. InnoDB에선 다음과 같이 3가지 종류의 인덱스 락이 있다...