Penghitungan ukuran penyimpanan

Halaman ini menjelaskan tentang ukuran penyimpanan dokumen, nama dokumen, kolom, dan entri indeks di Firestore.

Anda dapat mempelajari tentang 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 yang tercantum dalam jalur ke lokasi 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

Ukuran entri indeks penelusuran teks

Ukuran entri indeks penelusuran teks dalam indeks adalah jumlah dari:

  • Ukuran string pada nama koleksi
  • Ukuran nilai ID dokumen
  • Jumlah byte dari nilai kolom yang diindeks (x2)
  • 48 byte tambahan untuk metadata umum

Pertimbangkan contoh untuk peristiwa penyisipan untuk dokumen dengan ID dokumen my_task_id dalam koleksi tasks:

{
     "type": "Personal",
     "done": false,
     "priority": 1,
     "description": "Learn Cloud Firestore"
}

Ukuran total entri indeks penelusuran teks pada description adalah 105 byte berdasarkan:

  • 6 byte untuk nama koleksi tasks
  • 11 byte untuk nilai ID dokumen
  • 44 byte, berdasarkan 22 byte untuk kolom description x2
  • 48 byte tambahan untuk metadata umum

Ukuran entri indeks geospasial

Ukuran entri indeks geospasial dalam indeks adalah jumlah dari:

  • Ukuran string pada nama koleksi
  • Ukuran nilai ID dokumen
  • 128 byte untuk setiap titik geografis yang diindeks
  • 48 byte tambahan untuk metadata umum

Pertimbangkan contoh untuk peristiwa penyisipan untuk dokumen dengan ID dokumen my_place dalam koleksi places:

{
     "type": "Restaurant",
     "visited": false,
     "priority": 1,
     "location": GeoPoint(longitude, latitude)
}

Ukuran total entri indeks geospasial pada location adalah 192 byte berdasarkan:

  • 7 byte untuk nama koleksi places
  • 9 byte untuk ID dokumen
  • 128 byte untuk kolom location
  • 48 byte tambahan untuk metadata umum

Langkah berikutnya

Pelajari tentang harga Firestore.