반응형

TTL 인덱스는 날짜 필드에 기간을 주고 인덱스를 생성하게 되면, 자동으로 해당 시간이 경과한 데이터를 삭제해 주는 기능이 있다.

데이터를 보관 주기 이후에 삭제해야 하는 경우에 주로 사용된다.

 

1. 인덱스 생성 시 인덱스 이름을 주고 생성하는 방법

 

db.runCommand({
  createIndexes : "컬렉션이름" ,
  indexes : [
             { name : "index이름" ,
               key : { key1 : 1 , key2 : -1 } ,
               background : false ,
               unique : false ,
               expireAfterSeconds : "TTL Index일 경우 초 설정"
             }    
            ]
})

 

2. TTL Index 모니터링 주기 확인

 

db.adminCommand({getParameter:1, ttlMonitorSleepSecs: 1});

 

 

3.TTL Monitoring 상태 확인 및 disable/enable

db.adminCommand({getParameter:1, ttlMonitorEnabled:1});

 

db.adminCommand({setParameter:1, ttlMonitorEnabled:false});

db.adminCommand({getParameter:1, ttlMonitorEnabled:true});

 

4.TTL index에 의해서 지워진 데이터 확인

 

db.serverStatus().metrics.ttl.deleteDocuments

 

5. 잘 지워 지고 있는지 확인하기 위하여 해당 시간의 날짜 확인

new Date( ISODate() - (1000*60*60*24*200) )  -- 200일 전의 시간 확인 (UTC)

 

반응형

+ Recent posts