1. MongoDB OpLogOpLog 를 통해 현재 실행중인 쿼리의 클라이언트 정보, 락의 유형 등을 확인할 수 있다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. OpLog 확인3-1. Session 1 에서 인덱스 생성[direct: mongos] indexDB> db.uniqueIndex.createIndex( { dummy : 1 } )dummy_1 3-2. Session 2 에서 OpLog 조회위의 인덱스가 수행되는 동안 OpLog 를 조회하면 아래와 같은 정보가 출력된다.[direct: mon..
Database/MongoDB 실습
1. MongoDB Yield 잠금MongoDB 는 쿼리를 실행하는 도중 잠깐 쉬었다 실행을 재개한다.이 때 잠금과 스냅샷을 모두 해제하고 지정된 시간동안 쉬다 다시 잠금을 획득 후 다음 실행을 이어가게 된다.이는 트랜잭션의 동시성 처리를 우수하게 만들기 위함이다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. Yield 와 관련된 설정 값Yield 에서 특정 건수를 읽으면 특정 시간을 쉬는데internalQueryExecYieldPeriodMS 와 internalQueryExecYieldIterations..
1. MongoDB 잠금MongoDB 서버에서는 멀티 쓰레드의 동시 처리 중에 발생할 수 있는 쓰레드 간의 충돌 문제를 방지하기 위해 잠금을 사용한다. 1-1. MongoDB 잠금유형유형설명묵시적 잠금쿼리가 실행될 때 자동으로 획득했다 해제되는 잠금명시적 잠금사용자가 명령어로 잠금을 획득 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. 글로벌 잠금 획득 해제3-1. fsyncLock 로 획득fsyncLock 은 글로벌 잠금을 획득하는 함수이다.MongoDB 서버 인스턴스에 단 하나만 있는 잠금으로, 이를 인..
1. MongoDB TTL 인덱스TTL 인덱스는 특정 시간이 지나면 도큐먼트를 자동으로 삭제하는 기능을 제공한다.TTL 인덱스는 주로 로그 데이터나 세션 정보 등과 같이 일정 기간 후 자동으로 삭제해야 하는 데이터를 관리할 때 유용하다.다만 TTL 인덱스 필드값에 시계열 데이터가 적재되지 않으면 지워지지 않는다.1-1. MongoDB 인덱스 유형유형설명단일 필드 인덱스특정 필드에 대한 인덱스복합 인덱스여러 필드를 조합한 인덱스해시 인덱스해시된 값으로 인덱스텍스트 인덱스텍스트 검색을 위한 인덱스2dsphere 인덱스지리공간 데이터에 대한 인덱스유일 인덱스유일한 값만 허용- 로컬서버 기준에 한정, 샤드서버로 데이터가 분산되는 경우에는 어플리케이션에서 처리 2. MongoDB 테스트 버전유형버전구성mongo..
1. MongoDB Partial 인덱스쿼리를 효율적으로 사용하기 위해 MongoDB 는 인덱스를 제공한다.MongoDB 에서 인덱스 유형은 매우 다양하다.1-1. MongoDB 인덱스 유형유형설명단일 필드 인덱스특정 필드에 대한 인덱스복합 인덱스여러 필드를 조합한 인덱스해시 인덱스해시된 값으로 인덱스텍스트 인덱스텍스트 검색을 위한 인덱스2dsphere 인덱스지리공간 데이터에 대한 인덱스유일 인덱스유일한 값만 허용- 로컬서버 기준에 한정, 샤드서버로 데이터가 분산되는 경우에는 어플리케이션에서 처리 이러한 인덱스의 옵션에서 Partial 을 제공하는데 , 이 때는 이 필드에 포함된 값이 특정 값 이상일 때만 인덱스에 포함시킨다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongod..
1. MongoDB 유니크 인덱스쿼리를 효율적으로 사용하기 위해 MongoDB 는 인덱스를 제공한다.MongoDB 에서 인덱스 유형은 매우 다양하다.1-1. MongoDB 인덱스 유형유형설명단일 필드 인덱스특정 필드에 대한 인덱스복합 인덱스여러 필드를 조합한 인덱스해시 인덱스해시된 값으로 인덱스텍스트 인덱스텍스트 검색을 위한 인덱스2dsphere 인덱스지리공간 데이터에 대한 인덱스유일 인덱스유일한 값만 허용- 로컬서버 기준에 한정, 샤드서버로 데이터가 분산되는 경우에는 어플리케이션에서 처리 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 :..
1. MongoDB 전문검색 인덱스MongoDB 인덱스에서 전문검색 인덱스는 문자열을 빠르게 검색해 주는 방법이다.형태소 분석방식과 N-Gram 알고리즘 방식이 있다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. MongoDB 테스트 데이터 적재인덱스 생성 시 text 옵션을 주면 전문검색 인덱스로 생성된다.[direct: mongos] indexDB> db.wordCollection.insert( { contents : "Mozi Blog is one of Tech Blogs" } ){ acknowle..
1. MongoDB 멀티인덱스MongoDB 인덱스에서 멀티 키 인덱스는 여러 개의 인덱스 키 엔트리가 하나의 도큐먼트를 가지기 때문에쿼리의 검색조건으로 멀티 키 인덱스를 사용할 때는 검색 조건을 주의해야 한다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. MongoDB 테스트 데이터 적재number 필드는 배열로 되어있고 number 필드를 인덱스로 생성했다.[direct: mongos] indexDB> db.multiCollection.insert({ item: "Mozi" , number : [2, 9..
1. MongoDB 청크MongoDB 는 데이터를 청크단위로 묶어서 관리한다.청크는 밸런서에 의해 나뉘거나 샤드서버별로 옮겨다닐 수 있다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. 전제조건mongodb 는 2개의 샤드서버가 구성되어 있는 상태이다.레인지샤딩이 아래와 같이 구성되어있고 모든 청크는 rs1 샤드에 있다.[direct: mongos] test> sh.status();shardingVersion{ _id: 1, clusterId: ObjectId('66838519ea100ebaf5ee3cc8')..
1. MongoDB 레인지샤딩사용자가 샤드별로 가지는 데이터 범위를 할당하여 샤드별로 데이터를 분산할 수 있는 방법이다. 2. MongoDB 테스트 버전유형버전구성mongosh2.2.10 mongodb7.0.12Config : 1개, 포트 20000Route : 1개, 포트 20001Shard1 : 1개, 포트 30001Shard2 : 1개, 포트 40001 3. 전제조건mongodb 는 2개의 샤드서버가 구성되어 있는 상태이다.또 rangeShardDB 데이터베이스는 레인지샤딩으로 구성되어 있다.[direct: mongos] test> sh.status();shardingVersion{ _id: 1, clusterId: ObjectId('66838519ea100ebaf5ee3cc8') }---shard..