Penghitungan ukuran penyimpanan
Halaman ini menjelaskan ukuran penyimpanan dokumen, kolom, dan entri indeks di Firestore dengan kompatibilitas MongoDB.Anda dapat mempelajari biaya penyimpanan ini di Harga edisi Firestore Enterprise.
Ukuran string
Ukuran string dapat dihitung dengan menjumlahkan byte berenkode UTF-8 +1.
Hal-hal berikut ini disimpan sebagai string:
- Nama koleksi
- Nama kolom
- Nilai kolom string (termasuk
_id
)
Contoh:
- Nama koleksi
tasks
menggunakan 5 byte + 1 byte, dengan total 6 byte. - Nama kolom
description
menggunakan 11 byte + 1 byte, untuk total 12 byte.
Ukuran nilai kolom
Tabel berikut menunjukkan ukuran nilai kolom menurut jenisnya.
Jenis | Ukuran |
---|---|
Array | Jumlah ukuran nilainya |
Boolean | 1 byte |
Data biner | Panjang byte + 1 untuk subjenis non-generik (non-0) |
Tanggal | 8 byte |
Ganda | 8 byte |
Double128 | 16 byte |
Bilangan bulat 32-bit | 4 byte |
Bilangan bulat 64-bit (long) | 8 byte |
Objek | Jumlah ukuran string dari setiap nama kolom dan ukuran setiap nilai kolom dalam objek tersemat |
Kunci Min | 1 byte |
Kunci Maksimum | 1 byte |
Null | 1 byte |
Ekspresi reguler | (Panjang pola + 1) + (Panjang opsi + 1) |
Stempel waktu | 8 byte |
String | Jumlah byte berenkode UTF-8 + 1 |
Misalnya, kolom (logika) boolean bernama done
akan menggunakan 6 byte:
- 5 byte untuk nama kolom
done
- 1 byte untuk nilai boolean
Ukuran dokumen
Ukuran dokumen merupakan jumlah dari:
- Ukuran string dari nama koleksi
- Jumlah ukuran string dari setiap nama kolom (kecuali
_id
) - Jumlah ukuran setiap nilai kolom (termasuk
_id
) - 48 byte tambahan
Contoh ini adalah untuk dokumen dalam koleksi tasks
:
{ "_id": "my_task_id", "type": "Personal", "done": false, "priority": 1, "description": "Learn Cloud Firestore" }
Ukuran total kolom adalah 78 byte:
Nama dan nilai kolom | Ukuran kolom dalam satuan byte |
---|---|
"_id": "my_task_id" |
11 untuk nilai string kolom |
"type": "Personal" |
14 5 untuk nama kolom + 9 untuk nilai string kolom |
"done": false |
6 5 untuk nama kolom + 1 untuk nilai (logika) boolean kolom |
"priority": 1 |
17 9 untuk nama kolom + 4 untuk nilai bilangan bulat 32-bit kolom |
"description": "Learn Cloud Firestore" |
34 12 untuk nama kolom + 22 untuk nilai string kolom |
Dengan begitu, ukuran dokumennya adalah 6 + 78 + 48 = 132 byte:
- 6 untuk nama koleksi
- 78 byte untuk kolom
- 48 byte tambahan
Ukuran entri indeks
Ukuran entri indeks dalam indeks adalah jumlah dari:
- Ukuran string dari nama koleksi
- Ukuran nilai kolom
_id
- Jumlah nilai kolom yang diindeks
- 48 byte tambahan
Pertimbangkan dokumen dalam koleksi tasks
:
{ "_id": "my_task_id", "type": "Personal", "done": false, "priority": 1, "description": "Learn Cloud Firestore" }
Untuk indeks pada kolom done
dan
priority
(keduanya naik), ukuran total entri indeks dalam
indeks ini adalah 70 byte:
- 6 byte untuk nama koleksi
tasks
- 11 byte untuk nilai kolom
_id
- 1 byte untuk nilai kolom (logika) boolean
- 4 byte untuk nilai kolom bilangan bulat 32-bit
- 48 byte tambahan
Untuk indeks jarang, jika dokumen tidak menyertakan kolom apa pun,
tidak ada entri indeks yang dibuat. Jika dokumen berisi setidaknya satu
kolom yang diindeks, entri indeks akan dibuat dengan kolom yang tidak diindeks
ditetapkan ke NULL
.
Langkah berikutnya
Pelajari harga edisi Enterprise Firestore.