Dotyczy tylko wersji Cloud Firestore Enterprise. |
Na tej stronie opisujemy rozmiar pamięci dokumentów, pól i wpisów indeksu w Cloud Firestore w trybie zgodności z MongoDB.
Informacje o kosztach tego miejsca znajdziesz na stronie Cennik.
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:
- Nazwa kolekcji
- Nazwy pól
- wartości pól tekstowych (w tym
_id
);
Przykład:
- Nazwa kolekcji
tasks
zajmuje 5 bajtów + 1 bajt, czyli łącznie 6 bajtów. - Nazwa pola
description
zajmuje 11 bajtów + 1 bajt, czyli łącznie 12 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 |
Dane binarne | Długość w bajtach + 1 w przypadku podtypu innego niż ogólny (innego niż 0) |
Data | 8 bajtów |
Liczba zmiennoprzecinkowa | 8 bajtów |
Double128 | 16 bajtów |
Liczba całkowita 32-bitowa | 4 bajty |
Liczba całkowita 64-bitowa (długa) | 8 bajtów |
Obiekt | Suma rozmiarów ciągów znaków każdej nazwy pola i rozmiarów każdej wartości pola w obiekcie zagnieżdżonym. |
Klucz minimalny | 1 bajt |
Klucz maksymalny | 1 bajt |
Null | 1 bajt |
Wyrażenie regularne | (Długość wzorca + 1) + (długość opcji + 1) |
Sygnatura czasowa | 8 bajtów |
Ciąg znaków | Liczba bajtów zakodowanych w UTF-8 + 1 |
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 ciągu znaków nazwy kolekcji.
- Suma rozmiarów ciągów znaków w nazwach poszczególnych pól (z wyjątkiem
_id
). - Suma rozmiarów poszczególnych wartości pól (w tym
_id
). - 48 dodatkowych bajtów
Ten przykład dotyczy dokumentu w kolekcji tasks
:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
Łączny rozmiar pól to 78 bajtów:
Nazwa i wartość pola | Rozmiar pola w bajtach |
---|---|
"_id": "my_task_id" |
11 – wartość ciągu znaków w polu. |
"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 + 4 znaki na 32-bitową wartość całkowitą pola |
"description": "Learn Cloud Firestore" |
34 12 w przypadku nazwy pola + 22 w przypadku wartości ciągu pola |
Rozmiar dokumentu to 6 + 78 + 48 = 132 bajty:
- 6 za nazwę kolekcji
- 78 bajtów na pola
- 48 dodatkowych bajtów
Rozmiar wpisu w indeksie
Rozmiar wpisu indeksu w indeksie to suma:
- Rozmiar ciągu znaków nazwy kolekcji.
- Rozmiar wartości pola
_id
- Suma indeksowanych wartości pól
- 48 dodatkowych bajtów
Rozważmy dokument w kolekcji tasks
:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
W przypadku indeksu w polach done
i priority
(oba w kolejności rosnącej) łączny rozmiar wpisu indeksu w tym indeksie wynosi 70 bajtów:
- 6 bajtów na nazwę kolekcji
tasks
- 11 bajtów w przypadku wartości pola
_id
- 1 bajt na wartość pola logicznego
- 4 bajty na wartość pola 32-bitowej liczby całkowitej.
- 48 dodatkowych bajtów
W przypadku indeksów rzadkich, jeśli dokument nie zawiera żadnego z pól, nie jest tworzony żaden wpis indeksu. Jeśli dokument zawiera co najmniej 1 zindeksowane pole, tworzony jest wpis indeksu, w którym brakujące zindeksowane pola mają wartość NULL
.
Co dalej?
Dowiedz się więcej o cenach.