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:

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:

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:

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:

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:

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

Langkah selanjutnya

Pelajari harga Firestore.