스토리지 크기 계산
이 페이지에서는 MongoDB 호환성을 갖춘 Firestore의 문서, 필드, 색인 항목의 스토리지 크기를 설명합니다.
가격 책정 페이지에서 이 스토리지의 비용을 확인할 수 있습니다.
문자열 크기
문자열 크기는 UTF-8로 인코딩된 바이트 수 +1로 계산됩니다.
다음 항목은 문자열로 저장됩니다.
- 컬렉션 이름
- 필드 이름
- 문자열 필드 값(
_id포함)
예를 들면 다음과 같습니다.
- 컬렉션 이름
tasks는 5바이트 + 1바이트를 사용해 총 6바이트입니다. - 필드 이름
description은 11바이트 + 1바이트를 사용해 총 12바이트입니다.
필드 값 크기
다음 표에서는 필드 값의 크기를 유형별로 보여줍니다.
| 유형 | 크기 |
|---|---|
| 배열 | 값 크기의 총합 |
| 부울 | 1바이트 |
| 바이너리 데이터 | 일반이 아닌(0이 아닌) 하위 유형의 경우 바이트 길이 + 1 |
| 날짜 | 8바이트 |
| 실수 | 8바이트 |
| Double128 | 16바이트 |
| 32비트 정수 | 4바이트 |
| 64비트 정수(long) | 8바이트 |
| 객체 | 각 필드 이름의 문자열 크기와 삽입된 객체의 각 필드 값 크기의 합 |
| Min Key | 1바이트 |
| Max Key | 1바이트 |
| Null | 1바이트 |
| 정규 표현식 | (패턴 길이 + 1) + (옵션 길이 + 1) |
| 타임스탬프 | 8바이트 |
| 문자열 | UTF-8로 인코딩된 바이트 수 + 1 |
예를 들어 done이라는 이름의 부울 필드는 6바이트를 사용합니다.
done필드 이름에 5바이트- 부울 값에 1바이트
문서 크기
문서의 크기는 다음 항목의 총합입니다.
다음은 tasks 컬렉션에 있는 문서의 예입니다.
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
필드의 총 크기는 78바이트입니다.
| 필드 이름 및 값 | 바이트 단위의 필드 크기 |
|---|---|
"_id": "my_task_id" |
필드 문자열 값에 11 |
"type": "Personal" |
14 필드 이름에 5 + 필드 문자열 값에 9 |
"done": false |
6 필드 이름에 5 + 필드의 부울 값에 1 |
"priority": 1 |
17 필드 이름에 9 + 필드의 32비트 정수 값에 4 |
"description": "Learn Cloud Firestore" |
34 필드 이름에 12 + 필드 문자열 값에 21 |
따라서 문서 크기는 6 + 78 + 48 = 132바이트입니다.
- 컬렉션 이름에 6
- 필드에 78바이트
- 추가 48바이트
색인 항목 크기
색인의 색인 항목 크기는 다음 항목의 합계입니다.
tasks 컬렉션의 문서가 있다고 가정해 보겠습니다.
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
done 및 priority 필드의 색인(둘 다 오름차순)의 경우 이 색인에 있는 색인 항목의 총 크기는 70바이트입니다.
- 컬렉션 이름
tasks에 6바이트 _id필드 값에 11바이트- 부울 필드 값에 1바이트
- 32비트 정수 필드 값에 4바이트
- 추가 48바이트
희소 색인의 경우 문서에 필드가 포함되지 않으면 색인 항목이 생성되지 않습니다. 문서에 색인이 생성된 필드가 하나 이상 포함된 경우 색인이 생성되지 않은 필드가 NULL로 설정된 색인 항목이 생성됩니다.
스트림 이벤트 항목 크기 변경
변경 스트림 이벤트의 크기는 다음 항목의 합계입니다.
- 컬렉션 이름의 문자열 크기의 합 (x2)
- 문서의 삽입 및 업데이트 이벤트의 경우 다음을 충족해야 합니다.
- 멀티 문서 트랜잭션에 적용되는 경우
lsid및txnNumber에 추가로 24바이트 - 추가 92바이트
tasks 컬렉션의 문서에 대한 삽입 이벤트의 예를 살펴보겠습니다.
{
"_id": { <Resume Token> },
"operationType": "insert",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "db",
"coll": "tasks"
},
"documentKey": {
"_id": "my_task_id"
},
"fullDocument": {
"_id": "my_task_id",
"description": "Learn Cloud Firestore"
},
}
변경 스트림 이벤트의 총 크기는 149바이트입니다.
- 일반 메타데이터 92바이트
- 컬렉션 이름
tasks(6바이트) * 2에 따라 12바이트 _id필드 값에 11바이트description필드 이름에 12바이트description필드 값에 22바이트
텍스트 검색 색인 항목 크기
색인의 텍스트 검색 색인 항목 크기는 다음 항목의 합계입니다.
- 컬렉션 이름의 문자열 크기
_id값의 크기- 색인이 생성된 필드 값의 바이트 합계 (x2)
- 일반 메타데이터용 추가 48바이트
tasks 컬렉션에 _id my_task_id이 있는 문서의 삽입 이벤트 예를 살펴보겠습니다.
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
description의 텍스트 검색 색인 항목의 총 크기는 다음을 기준으로 105바이트입니다.
- 컬렉션 이름
tasks에 6바이트 _id값에 11바이트description필드 2개에 각각 22바이트씩 할당되어 총 44바이트- 일반 메타데이터용 추가 48바이트
지리 공간 색인 항목 크기
색인의 지리 공간 색인 항목 크기는 다음 항목의 합계입니다.
- 컬렉션 이름의 문자열 크기
_id값의 크기- 색인화된 지리적 위치당 128바이트
- 일반 메타데이터용 추가 48바이트
places 컬렉션에 _id my_place이 있는 문서의 삽입 이벤트 예를 살펴보겠습니다.
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
location의 지리 공간 색인 항목의 총 크기는 다음을 기준으로 192바이트입니다.
- 컬렉션 이름
places에 7바이트 - 문서 ID에 9바이트
location필드에 128바이트- 일반 메타데이터용 추가 48바이트
다음 단계
가격 책정 알아보기