고정 사이즈 컬렉션 생성
고정 사이즈 컬렉션 을 만들려면 db.createCollection()
메서드 또는 create
명령에 capped
옵션을 지정합니다.
고정 사이즈 컬렉션은 명시적으로 생성해야 합니다. 존재하지 않는 컬렉션에 데이터를 삽입하여 고정 사이즈 컬렉션을 암시적으로 생성할 수는 없습니다.
고정 사이즈 컬렉션을 만들 때는 컬렉션의 최대 크기를 지정해야 합니다. MongoDB는 컬렉션에 지정된 스토리지를 미리 할당합니다. 고정 사이즈 컬렉션의 크기에는 내부 오버헤드를 위한 작은 공간이 포함됩니다.
선택적으로 컬렉션의 최대 문서 수를 지정할 수 있습니다. MongoDB는 컬렉션이 최대 문서 수에 도달하기 전에 최대 크기 제한에 도달하는 경우 오래된 문서를 제거합니다.
이 작업에 대하여
일반적으로 TTL(Time To Live) 인덱스는 고정 사이즈 컬렉션보다 더 나은 성능과 유연성을 제공합니다. TTL 인덱스는 날짜로 입력된 필드 값과 인덱스의 TTL 값에 따라 일반 컬렉션에서 데이터를 만료하고 제거합니다.
고정 사이즈 컬렉션은 쓰기 작업을 직렬화하므로 비고정 사이즈 컬렉션보다 동시 삽입, 업데이트 및 삭제 성능이 떨어집니다. 고정 사이즈 컬렉션을 만들기 전에 TTL 인덱스를 대신 사용할 수 있는지 고려하세요.
단계
다음 예시는 그 방법을 보여줍니다.
최대 크기가 제한된 고정 사이즈 컬렉션 생성
최대 크기가 100,000바이트인 log
(이)라는 고정 사이즈 컬렉션을 만듭니다.
db.createCollection( "log", { capped: true, size: 100000 } )
참고
size
필드에 입력하는 값은 0
보다 크고 1024^5
와 동일하거나 이보다 작아야 합니다(PB). MongoDB는 모든 고정 사이즈 컬렉션의 size
를 256의 가장 가까운 정수 배수인 바이트 단위로 반올림합니다.
최대 문서 수로 고정 사이즈 컬렉션 만들기
최대 크기가 5,242,880 바이트이고 최대 5,000 문서를 저장할 수 있는 고정 사이즈 컬렉션 log2
을 만듭니다.
db.createCollection( "log2", { capped: true, size: 5242880, max: 5000 } )
중요
max
문서 수를 지정하는 경우에도 size
필드는 항상 필수 항목입니다.