Penghitungan ukuran penyimpanan
Halaman ini menjelaskan ukuran penyimpanan dokumen, nama dokumen, kolom, dan entri indeks di Firestore.
Anda dapat mempelajari biaya penyimpanan ini di Harga Firestore.Ukuran string
Ukuran string dapat dihitung dengan menjumlahkan byte berenkode UTF-8 +1.
Hal-hal berikut ini disimpan sebagai string:
- ID koleksi
- ID dokumen string
- Nama dokumen
- Nama kolom
- Nilai kolom string
Contoh:
- ID koleksi
tasks
menggunakan 5 byte + 1 byte, untuk total 6 byte. - Nama kolom
description
menggunakan 11 byte + 1 byte, untuk total 12 byte.
Ukuran ID dokumen
Ukuran ID dokumen adalah ukuran string untuk ID string atau 8 byte untuk ID integer.
Ukuran nama dokumen
Ukuran nama dokumen merupakan jumlah dari:
- Ukuran setiap ID koleksi dan ID dokumen di lokasi ke dokumen
- 16 byte tambahan
Untuk dokumen dalam subkoleksi users/jeff/tasks
dengan ID dokumen string
my_task_id
, ukuran nama dokumen adalah 6 + 5 + 6 + 11 + 16 byte:
- 6 byte untuk ID koleksi
users
- 5 byte untuk ID dokumen
jeff
- 6 byte untuk ID koleksi
tasks
- 11 byte untuk ID dokumen
my_task_id
- 16 byte tambahan
Ukuran nilai kolom
Tabel berikut menunjukkan ukuran nilai kolom menurut jenisnya.
Jenis | Ukuran |
---|---|
Array | Jumlah ukuran nilainya |
Boolean | 1 byte |
Byte | Panjang byte |
Tanggal dan waktu | 8 byte |
Angka floating-point | 8 byte |
Titik geografis | 16 byte |
Bilangan bulat | 8 byte |
Peta | Ukuran peta yang dihitung dengan cara yang sama seperti ukuran dokumen |
Null | 1 byte |
Referensi | Ukuran nama dokumen |
String teks | Jumlah byte berenkode UTF-8 + 1 |
Vektor | 8 byte per dimensi |
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 nama dokumen
- Jumlah ukuran string dari setiap nama kolom
- Jumlah ukuran setiap nilai kolom
- 32 byte tambahan
Contoh ini adalah untuk dokumen dalam subkoleksi users/jeff/tasks
dengan ID dokumen string my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Ukuran total kolom adalah 71 byte:
Nama dan nilai kolom | Ukuran kolom dalam satuan byte |
---|---|
"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 9untuk nama kolom + 8 untuk nilai bilangan bulat kolom |
"description": "Learn Cloud Firestore" |
34 12 untuk nama kolom + 22 untuk nilai string kolom |
Dengan begitu, ukuran dokumennya adalah 44 + 71 + 32 = 147 byte:
- 44 byte untuk nama dokumen
- 71 byte untuk kolom
- 32 byte tambahan
Ukuran entri indeks
Ukuran entri indeks dihitung sebagai berikut untuk indeks kolom tunggal dan gabungan.
Ukuran entri indeks kolom tunggal
Ukuran entri indeks kolom tunggal bergantung pada apakah indeks dicakup untuk koleksi atau grup koleksi.
Cakupan koleksi
Ukuran entri dalam indeks kolom tunggal dengan cakupan koleksi adalah jumlah dari:
- Ukuran nama dokumen pada dokumen yang diindeks
- Ukuran nama dokumen dari dokumen induk dokumen yang diindeks
- Ukuran string dari nama kolom yang diindeks
- Ukuran nilai kolom yang diindeks
- 32 byte tambahan
Pertimbangkan dokumen dalam sub-koleksi users/jeff/tasks
dengan
ID dokumen string my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Untuk indeks kolom tunggal dengan cakupan koleksi yang mengindeks kolom done
,
ukuran total entri dalam indeks ini adalah 109 byte:
- 44 byte untuk nama dokumen
users/jeff/tasks/my_task_id
- 27 byte untuk nama dokumen dari dokumen induk
users/jeff
- 5 byte untuk nama kolom
done
- 1 byte untuk nilai kolom (logika) boolean
- 32 byte tambahan
Cakupan grup koleksi
Ukuran entri dalam indeks kolom tunggal dengan cakupan grup koleksi adalah jumlah dari:
- Ukuran nama dokumen pada dokumen yang diindeks
- Ukuran string dari nama kolom yang diindeks
- Ukuran nilai kolom yang diindeks
- 48 byte tambahan
Pertimbangkan dokumen dalam sub-koleksi users/jeff/tasks
dengan
ID dokumen string my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Untuk indeks kolom tunggal dengan cakupan grup koleksi yang mengindeks kolom done
,
ukuran total entri dalam indeks ini adalah 98 byte:
- 44 byte untuk nama dokumen
users/jeff/tasks/my_task_id
- 5 byte untuk nama kolom
done
- 1 byte untuk nilai kolom (logika) boolean
- 48 byte tambahan
Ukuran entri indeks gabungan
Ukuran entri dalam indeks komposit bergantung pada apakah indeks dicakup untuk koleksi atau grup koleksi.
Cakupan koleksi
Ukuran entri indeks dalam indeks gabungan dengan cakupan koleksi adalah jumlah dari:
- Ukuran nama dokumen pada dokumen yang diindeks
- Ukuran nama dokumen dari dokumen induk dokumen yang diindeks
- Jumlah nilai kolom yang diindeks
- 32 byte tambahan
Pertimbangkan dokumen dalam sub-koleksi users/jeff/tasks
dengan
ID dokumen string my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Untuk indeks gabungan dengan cakupan koleksi yang mengindeks kolom done
dan
priority
(keduanya naik), ukuran total entri dalam indeks ini adalah
228 byte:
- 44 byte untuk nama dokumen
users/jeff/tasks/my_task_id
- 27 byte untuk nama dokumen dari dokumen induk
users/jeff
- 1 byte untuk nilai kolom (logika) boolean
- 8 byte untuk nilai kolom integer
- 32 byte tambahan
Cakupan grup koleksi
Ukuran entri indeks dalam indeks gabungan dengan cakupan grup penagihan adalah jumlah dari:
- Ukuran nama dokumen pada dokumen yang diindeks
- Jumlah nilai kolom yang diindeks
- 32 byte tambahan
Pertimbangkan dokumen dalam sub-koleksi users/jeff/tasks
dengan
ID dokumen string my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Untuk indeks gabungan dengan cakupan grup koleksi yang mengindeks kolom done
dan
priority
(keduanya naik), ukuran total entri indeks dalam
indeks ini adalah 85 byte:
- 44 byte untuk nama dokumen
users/jeff/tasks/my_task_id
- 1 byte untuk nilai kolom (logika) boolean
- 8 byte untuk nilai kolom integer
- 32 byte tambahan