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:

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:

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.