Na tej stronie opisujemy rozmiar miejsca na dane dokumentów, nazwy dokumentów, pola i wpisy indeksu w Cloud Firestore.
Więcej informacji o kosztach tego miejsca na dane znajdziesz na stronie Cloud Firestore Ceny.Rozmiar ciągu znaków
Rozmiar ciągu znaków jest obliczany jako liczba bajtów zakodowanych w UTF-8 + 1.
Jako ciągi znaków są przechowywane te elementy:
- identyfikatory kolekcji,
- identyfikatory dokumentów w postaci ciągu znaków,
- nazwy dokumentów,
- nazwy pól,
- wartości pól w postaci ciągu znaków.
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 w postaci ciągu znaków lub 8 bajtów w przypadku identyfikatora w postaci liczby całkowitej.
Rozmiar nazwy dokumentu
Rozmiar nazwy dokumentu to suma tych wartości:
- 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 identyfikator kolekcji
users - 5 bajtów na identyfikator dokumentu
jeff - 6 bajtów na identyfikator kolekcji
tasks - 11 bajtów na identyfikator dokumentu
my_task_id - 16 dodatkowych bajtów
Rozmiar wartości pola
W tabeli poniżej znajdziesz rozmiar wartości pól według typu.
| Typ | Rozmiar |
|---|---|
| Tablica | Suma rozmiarów jej 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ą pola
Rozmiar dokumentu
Rozmiar dokumentu to suma tych wartości:
- rozmiar nazwy dokumentu
- suma rozmiarów ciągów znaków każdej nazwy pola,
- suma rozmiarów każdej wartości pola
- 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 na nazwę pola + 9 na wartość pola w postaci ciągu znaków |
"done": false |
6 5 na nazwę pola + 1 na wartość logiczną pola |
"priority": 1 |
17 9 na nazwę pola + 8 na wartość pola w postaci liczby całkowitej |
"description": "Learn Cloud Firestore" |
34 12 na nazwę pola + 22 na wartość pola w postaci ciągu znaków |
Rozmiar dokumentu wynosi więc 44 + 71 + 32 = 147 bajtów:
- 44 bajty na nazwę dokumentu
- 71 bajtów na pola
- 32 dodatkowe bajty
Rozmiar wpisu indeksu
Rozmiary wpisów indeksu są obliczane w ten sposób w przypadku indeksów pojedynczych pól i indeksów złożonych.
Rozmiar wpisu indeksu pojedynczego pola
Rozmiar wpisu indeksu pojedynczego pola zależy od tego, czy indeks jest ograniczony do kolekcji czy do grupy kolekcji.
Zakres kolekcji
Rozmiar wpisu w indeksie pojedynczego pola z zakresem kolekcji to suma tych wartości:
- Rozmiar nazwy dokumentu indeksowanego dokumentu
- Rozmiar nazwy dokumentu dokumentu nadrzędnego indeksowanego dokumentu
- Rozmiar ciągu znaków nazwy indeksowanego pola
- rozmiar wartości indeksowanego 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 pojedynczego pola 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ść logiczną pola
- 32 dodatkowe bajty
Zakres grupy kolekcji
Rozmiar wpisu w indeksie pojedynczego pola z zakresem grupy kolekcji to suma tych wartości:
- Rozmiar nazwy dokumentu indeksowanego dokumentu
- Rozmiar ciągu znaków nazwy indeksowanego pola
- rozmiar wartości indeksowanego 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 pojedynczego pola z zakresem 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ść logiczną pola
- 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 do grupy kolekcji.
Zakres kolekcji
Rozmiar wpisu indeksu w indeksie złożonym z zakresem kolekcji to suma tych wartości:
- Rozmiar nazwy dokumentu indeksowanego dokumentu
- Rozmiar nazwy dokumentu dokumentu nadrzędnego indeksowanego dokumentu
- suma wartości indeksowanych 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 z zakresem 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ść logiczną pola
- 8 bajtów na wartość pola w postaci liczby całkowitej
- 32 dodatkowe bajty
Zakres grupy kolekcji
Rozmiar wpisu indeksu w indeksie złożonym z zakresem grupy kolekcji to suma tych wartości:
- Rozmiar nazwy dokumentu indeksowanego dokumentu
- suma wartości indeksowanych 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 z zakresem grupy kolekcji, który indeksuje pola done i priority (oba w kolejności rosnącej), łączny rozmiar wpisu w tym indeksie wynosi 85 bajtów:
- 44 bajty na nazwę dokumentu
users/jeff/tasks/my_task_id - 1 bajt na wartość logiczną pola
- 8 bajtów na wartość pola w postaci liczby całkowitej
- 32 dodatkowe bajty
Rozmiar wpisu indeksu wyszukiwania tekstu
Rozmiar wpisu indeksu wyszukiwania tekstu w indeksie to suma tych wartości:
- rozmiar ciągu znaków nazwy kolekcji,
- rozmiar wartości identyfikatora dokumentu,
- suma bajtów z wartości indeksowanych pól (x2),
- 48 dodatkowych bajtów na metadane ogólne.
Rozważmy przykład zdarzenia wstawienia dokumentu z identyfikatorem my_task_id w kolekcji tasks:
Łączny rozmiar wpisu indeksu wyszukiwania tekstu w polu description wynosi 105 bajtów:
- 6 bajtów na nazwę kolekcji
tasks - 11 bajtów na wartość identyfikatora dokumentu
- 44 bajty na podstawie 22 bajtów na pole
descriptionx2 - 48 dodatkowych bajtów na metadane ogólne
Rozmiar wpisu indeksu geoprzestrzennego
Rozmiar wpisu indeksu geoprzestrzennego w indeksie to suma tych wartości:
- rozmiar ciągu znaków nazwy kolekcji,
- rozmiar wartości identyfikatora dokumentu,
- 128 bajtów na każdy indeksowany punkt geograficzny,
- 48 dodatkowych bajtów na metadane ogólne.
Rozważmy przykład zdarzenia wstawienia dokumentu z identyfikatorem my_place w kolekcji places:
{ "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
Łączny rozmiar wpisu indeksu geoprzestrzennego w polu location wynosi 192 bajty:
- 7 bajtów na nazwę kolekcji
places - 9 bajtów na identyfikator dokumentu
- 128 bajtów na pole
location - 48 dodatkowych bajtów na metadane ogólne