Na tej stronie opisujemy rozmiar pamięci dokumentów, nazw dokumentów, pól i wpisów indeksu w Cloud Firestore.
Informacje o kosztach tego miejsca znajdziesz na stronie Cloud FirestoreCeny.Rozmiar ciągu znaków
Rozmiary ciągów znaków są obliczane jako liczba bajtów zakodowanych w UTF-8 + 1.
Jako ciągi znaków są przechowywane te elementy:
- Identyfikatory kolekcji
- Identyfikatory dokumentów w formie ciągu znaków
- Nazwy dokumentów
- Nazwy pól
- Wartości pól tekstowych
Przykład:
- Identyfikator kolekcji taskszajmuje 5 bajtów + 1 bajt, czyli łącznie 6 bajtów.
- Nazwa pola descriptionzajmuje 11 bajtów + 1 bajt, czyli łącznie 12 bajtów.
Rozmiar identyfikatora dokumentu
Rozmiar identyfikatora dokumentu to rozmiar ciągu znaków w przypadku identyfikatora ciągu znaków lub 8 bajtów w przypadku identyfikatora liczbowego.
Rozmiar nazwy dokumentu
Rozmiar nazwy dokumentu to suma:
- Rozmiar każdego identyfikatora kolekcji i identyfikatora dokumentu w ścieżce do dokumentu.
- 16 dodatkowych bajtów
W przypadku dokumentu w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id rozmiar nazwy dokumentu wynosi 6 + 5 + 6 + 11 + 16 = 44 bajty:
- 6 bajtów na usersidentyfikator kolekcji.
- 5 bajtów na jeffidentyfikator dokumentu
- 6 bajtów na tasksidentyfikator kolekcji.
- 11 bajtów na my_task_ididentyfikator dokumentu
- 16 dodatkowych bajtów
Rozmiar wartości pola
W tabeli poniżej podano rozmiar wartości pól według typu.
| Typ | Rozmiar | 
|---|---|
| Tablica | suma rozmiarów jego wartości, | 
| Wartość logiczna | 1 bajt | 
| Bajty | Długość w bajtach | 
| Data i godzina | 8 bajtów | 
| Liczba zmiennoprzecinkowa | 8 bajtów | 
| Punkt geograficzny | 16 bajtów | 
| Liczba całkowita | 8 bajtów | 
| Mapa | Rozmiar mapy obliczany w taki sam sposób jak rozmiar dokumentu. | 
| Null | 1 bajt | 
| Źródła wiedzy | Rozmiar nazwy dokumentu | 
| Ciąg tekstowy | Liczba bajtów zakodowanych w UTF-8 + 1 | 
| Wektor | 8 bajtów na wymiar | 
Na przykład pole logiczne o nazwie done zajmuje 6 bajtów:
- 5 bajtów na nazwę pola done
- 1 bajt na wartość logiczną
Rozmiar dokumentu
Rozmiar dokumentu to suma:
- Rozmiar nazwy dokumentu
- Suma rozmiarów ciągów znaków w nazwach poszczególnych pól.
- Suma rozmiarów wartości pól
- 32 dodatkowe bajty
Ten przykład dotyczy dokumentu w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Łączny rozmiar pól to 71 bajtów:
| Nazwa i wartość pola | Rozmiar pola w bajtach | 
|---|---|
| "type": "Personal" | 14 5 znaków na nazwę pola + 9 znaków na wartość tekstową pola | 
| "done": false | 6 5 znaków na nazwę pola + 1 znak na wartość logiczną pola | 
| "priority": 1 | 17 9 znaków na nazwę pola + 8 znaków na wartość całkowitą pola | 
| "description": "Learn Cloud Firestore" | 34 12 w przypadku nazwy pola + 22 w przypadku wartości ciągu znaków pola | 
Rozmiar dokumentu to 44 + 71 + 32 = 147 bajtów:
- 44 bajty na nazwę dokumentu.
- 71 bajtów na pola
- 32 dodatkowe bajty
Rozmiar wpisu w indeksie
Rozmiary wpisów indeksu są obliczane w przypadku indeksów jednopola i złożonych w ten sposób:
Rozmiar wpisu indeksu pojedynczego pola
Rozmiar wpisu indeksu z jednym polem zależy od tego, czy indeks jest ograniczony do kolekcji czy grupy kolekcji.
Zakres kolekcji
Rozmiar wpisu w indeksie z zakresem kolekcji obejmującym jedno pole to suma:
- Rozmiar nazwy dokumentu zindeksowanego dokumentu
- Rozmiar nazwy dokumentu dokumentu nadrzędnego zindeksowanego dokumentu.
- Rozmiar ciągu znaków indeksowanej nazwy pola.
- Rozmiar indeksowanej wartości pola.
- 32 dodatkowe bajty
Rozważmy dokument w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
W przypadku indeksu z zakresem kolekcji, który indeksuje pole done, łączny rozmiar wpisu w tym indeksie wynosi 109 bajtów:
- 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
- 27 bajtów na nazwę dokumentu nadrzędnego users/jeff
- 5 bajtów na nazwę pola done
- 1 bajt na wartość pola logicznego
- 32 dodatkowe bajty
Zakres grupy kolekcji
Rozmiar wpisu w indeksie z 1 polem i zakresem grupy kolekcji to suma:
- Rozmiar nazwy dokumentu zindeksowanego dokumentu
- Rozmiar ciągu znaków indeksowanej nazwy pola.
- Rozmiar indeksowanej wartości pola.
- 48 dodatkowych bajtów
Rozważmy dokument w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
W przypadku indeksu z 1 polem o zakresie grupy kolekcji, który indeksuje pole done, łączny rozmiar wpisu w tym indeksie wynosi 98 bajtów:
- 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
- 5 bajtów na nazwę pola done
- 1 bajt na wartość pola logicznego
- 48 dodatkowych bajtów
Rozmiar wpisu indeksu złożonego
Rozmiar wpisu w indeksie złożonym zależy od tego, czy indeks jest ograniczony do kolekcji czy grupy kolekcji.
Zakres kolekcji
Rozmiar wpisu indeksu w indeksie złożonym o zakresie kolekcji to suma:
- Rozmiar nazwy dokumentu zindeksowanego dokumentu
- Rozmiar nazwy dokumentu dokumentu nadrzędnego zindeksowanego dokumentu.
- Suma indeksowanych wartości pól
- 32 dodatkowe bajty
Rozważmy dokument w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
W przypadku indeksu złożonego o zakresie kolekcji, który indeksuje pola done i priority (oba w kolejności rosnącej), łączny rozmiar wpisu w tym indeksie wynosi 112 bajtów:
- 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
- 27 bajtów na nazwę dokumentu nadrzędnego users/jeff
- 1 bajt na wartość pola logicznego
- 8 bajtów na wartość pola liczby całkowitej
- 32 dodatkowe bajty
Zakres grupy kolekcji
Rozmiar wpisu indeksu w indeksie złożonym o zakresie grupy kolekcji jest sumą:
- Rozmiar nazwy dokumentu zindeksowanego dokumentu
- Suma indeksowanych wartości pól
- 32 dodatkowe bajty
Rozważmy dokument w podkolekcji users/jeff/tasks z identyfikatorem dokumentu w postaci ciągu znaków my_task_id:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
W przypadku indeksu złożonego o zakresie grupy kolekcji, który indeksuje pola done i priority (oba w kolejności rosnącej), łączny rozmiar wpisu indeksu w tym indeksie wynosi 85 bajtów:
- 44 bajty na nazwę dokumentu users/jeff/tasks/my_task_id
- 1 bajt na wartość pola logicznego
- 8 bajtów na wartość pola liczby całkowitej
- 32 dodatkowe bajty