본문 바로가기

전체 글

[MongoDB] 불필요한 index 정리 및 최적화 (2022.09.01) 0. Table Of Contents 0. Table Of Contents 1. 개요 2. 배경 지식 2.1. 인덱스 2.2. B-Tree 2.3. B-Tree에 최적화된 mongodb index 설계 2.3.1. ESR Rule 2.3.2. 왜 ESR Rule을 따라야 하는가? 3. 개선 전 DB 문제점 분석 3.1. 불필요한 인덱스 3.2. 인덱스 카디널리티 분석 3.3. ESR Rule 분석 4. 인덱스 튜닝 결과 4.1. Index Access 4.2. 카디널리티 분석 ESR Rule 분석을 통한 개선 4.3. 총평 5. 후기 및 다음 작업에 대한 예고 1. 개요 여러 서비스로 쪼개져 있는 환경에서는 각 마이크로서비스가 필요한 인덱스를 build 할 수 있다. 그러나, 인덱스를 개발자 간 상호 협.. 더보기
[MongoDB] Timeseries Collection에 대한 연구 0. Table Of Content 0. Table Of Content 1. Time Series Collection을 연구하게 된 계기 2. Time Series Data란 무엇인가? 3. 일반 Collection과 Time Series Collection의 동작 방식 3.1. 일반 Collection 3.2. TimeSeries Collection 4. 적용 방법 4.1. MongoDB 설치 4.2. NestJS 초기 설정 4.2.1. mongoose 설치 4.2.2. mongoose connection 설정 4.2.3. Schema 작성 4.2.4. Schema를 injection 받아서 사용할 수 있도록 선언해준다. 4.3. MongoDB data auto delete by ttl 설정 (Opti.. 더보기
[MongoDB] MongoDB Performance를 향상시키는 전략 0. Table Of Contents 0. Table Of Contents 1. 많은 인덱스를 생성하지 않는다. 2. Index Prefix를 적극적으로 이용하자. 3. Multi Sorting의 경우 sort 방향 신경써서 index를 설계하자 4. 하나의 collection을 여러개의 collection으로 분리하자 5. MongoDB를 4.0이상 버전으로 유지하자. 5.1. Non blocking Secondary Read 5.2. Multi Transaction 6. Reference 1. 많은 인덱스를 생성하지 않는다. 다음 사진과 같이 인덱스를 하나의 사전이라고 생각해보자. 위 같은 구조에서 collection에 name이라는 property가 “AB“라는 document를 추가한다고 가정하자.. 더보기