스토리지 크기 계산

이 페이지에서는 Datastore 모드의 Firestore의 항목, 키, 속성, 색인 항목의 스토리지 크기를 설명합니다. 이 스토리지의 비용은 Datastore 모드 가격 책정에서 확인할 수 있습니다.

문자열 크기

문자열 크기는 UTF-8로 인코딩된 바이트 수+1로 계산됩니다.

다음 항목은 문자열로 저장됩니다.

  • 종류 이름
  • 네임스페이스 이름(기본 네임스페이스의 크기는 0)
  • 속성 이름
  • 문자열 속성 값

예를 들면 다음과 같습니다.

  • Task 종류의 이름은 4바이트 + 1바이트를 사용해 총 5바이트입니다.
  • description 속성의 이름은 11바이트 + 1바이트를 사용해 총 12바이트입니다.
  • my_name_space 네임스페이스의 이름은 13바이트 + 1바이트를 사용해 총 14바이트입니다.

키 크기

키 크기는 다음의 합으로 계산합니다.

  • 네임스페이스 문자열 크기(기본 네임 스페이스가 아닌 경우)
  • 전체 키 경로 문자열 크기(정수 ID는 각각 8바이트)
  • 16바이트

기본 네임스페이스의 Task 종류 키(숫자 ID를 포함하고 상위 항목은 없는 경우):

Task id:5730082031140864

키 크기는 다음과 같이 5+8+16=29바이트가 됩니다.

  • Task 종류 이름 5바이트
  • 숫자 ID 8바이트
  • 키 16바이트

기본 네임스페이스의 Task 종류 키(문자열 ID를 포함하고 상위 항목은 없는 경우):

Task name:my_task_id

키 크기는 다음과 같이 5+11+16=32바이트가 됩니다.

  • Task 종류 이름 5바이트
  • my_task_id 문자열 ID 11바이트
  • 키 16바이트

기본 네임스페이스의 Task 항목(TaskList 상위 항목을 포함한 경우):

TaskList id:5654313976201216 > Task id:5629499534213120

상위 항목이 다음과 같이 9+8=17바이트를 사용합니다.

  • TaskList 종류 이름 9바이트
  • 숫자 ID 8바이트

따라서 TaskList 상위 항목이 있는 Task 항목의 키 크기는 17+5+8+16=46바이트를 사용하게 됩니다.

  • 상위 항목 17바이트
  • Task 종류 이름 5바이트
  • 숫자 ID 8바이트
  • 키 16바이트

이 항목이 my_name_space 네임스페이스에 있는 경우 my_name_space 이름이 14바이트를 사용하므로 키 크기는 14+46=60바이트가 됩니다.

속성 크기

속성 크기는 다음 항목의 총합입니다.

  • 속성 이름 문자열 크기
  • 속성 값 크기

다음은 유형별 속성 값 크기를 보여줍니다.

유형 크기
배열 값 크기의 총합
blob 바이트 길이
부울 1바이트
실수 8바이트
내장 항목 항목 크기
지리적 지점 16바이트
정수 8바이트
키 크기
Null 1바이트
문자열 UTF-8로 인코딩된 바이트 수 +1
타임스탬프 8바이트

예를 들어 done이라는 이름의 부울 유형 속성은 6바이트를 사용합니다.

  • done 속성 이름 5바이트
  • 부울 값 1바이트

항목 크기

항목 크기는 다음 항목의 총합입니다.

이 예시는 숫자 ID를 포함하고 상위 항목이 없으면서 기본 네임스페이스에 있는 Task 종류 항목의 경우입니다.

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

속성의 전체 크기는 다음과 같이 78바이트입니다.

속성 이름 및 값 속성 크기(바이트)
"type": "Personal" 14
속성 이름 5+속성 문자열 값 9
"done": false 6
속성 이름 5+속성 부울 값 1
"priority": 1 17
속성 이름 9+속성 정수 값 8
"description": "Learn Google Cloud Datastore" 41
속성 이름 12+속성 문자열 값 29

따라서 항목 크기는 다음과 같이 29+78+32=139바이트입니다.

  • 키 29바이트
  • 속성 78바이트
  • 항목 32바이트

색인 항목 크기

색인 항목의 크기는 내장 색인 및 복합 색인의 경우 다음과 같이 계산됩니다.

내장 색인

내장 색인 항목의 크기는 다음 항목의 총합입니다.

  • 색인이 생성된 항목의 키 크기
  • 색인이 생성된 속성 이름의 합
  • 색인이 생성된 속성 값의 합
  • 색인이 생성된 항목 종류 이름의 크기
  • 32바이트

예를 들어 기본 네임스페이스에서 숫자 ID가 있고 상위 항목은 없는 종류가 Task인 항목을 살펴봅니다.

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

done이 색인이 생성된 속성인 경우 단일 속성 done 색인의 내장 색인 항목은 키, done 속성 이름과 값, Task 종류 이름, 색인 항목의 32바이트로 구성됩니다. 이 색인 항목의 총 크기는 72바이트입니다.

  • 키 29
  • done 속성 이름 및 부울 값 6
  • Task 종류 이름 5
  • 색인 항목 32

기본적으로 Datastore 모드 데이터베이스는 각 항목 종류의 각 속성에 대한 두 단일 속성 색인(하나는 오름차순으로, 다른 하나는 내림차순으로)을 자동으로 미리 정의합니다. 따라서 이 항목은 오름차순의 단일 속성 done 색인에 대한 72바이트 크기의 색인 항목과 내림차순의 단일 속성 done 색인에 대한 72바이트 크기의 색인 항목을 갖게 됩니다.

복합 색인

복합 색인 항목의 크기는 다음 항목의 총합입니다.

예를 들어 기본 네임스페이스에서 숫자 ID가 있고 상위 항목은 없는 종류가 Task인 항목을 살펴봅니다.

indexes:
- kind: Task
  properties:
  - name: done
    direction: asc
  - name: priority
    direction: asc

donepriority 속성(둘 다 오름차순)을 사용하는 복합 색인을 생각해 보세요.

이 색인의 색인 항목 총 크기는 70바이트입니다.

  • 키 29
  • done 속성 부울 값 1
  • priority 속성 정수 값 8
  • 색인 항목 32

Datastore 모드의 Firestore에서 속성의 색인을 유지하지 않도록 하려면 색인에서 속성을 제외합니다. 속성을 제외하면 모든 복합 색인에서 해당 속성이 제거됩니다.

다음 단계