การคำนวณขนาดพื้นที่เก็บข้อมูล

หน้านี้อธิบายขนาดพื้นที่เก็บข้อมูลของเอกสาร ชื่อเอกสาร ช่อง และ รายการดัชนีใน Cloud Firestore

คุณดูข้อมูลเกี่ยวกับค่าใช้จ่ายของพื้นที่เก็บข้อมูลนี้ได้ที่ Cloud Firestore ราคา

ขนาดสตริง

ระบบจะคำนวณขนาดสตริงเป็นจำนวนไบต์ที่เข้ารหัส UTF-8 + 1

ระบบจะจัดเก็บข้อมูลต่อไปนี้เป็นสตริง

  • รหัสคอลเล็กชัน
  • รหัสเอกสารสตริง
  • ชื่อเอกสาร
  • ชื่อช่อง
  • ค่าในช่องสตริง

ตัวอย่างเช่น

  • รหัสคอลเล็กชัน tasks ใช้ 5 ไบต์ + 1 ไบต์ รวมเป็น 6 ไบต์
  • ชื่อช่อง description ใช้ 11 ไบต์ + 1 ไบต์ รวมเป็น 12 ไบต์

ขนาดรหัสเอกสาร

ขนาดรหัสเอกสารจะเป็นขนาดสตริงสำหรับรหัสสตริง หรือ 8 ไบต์สำหรับรหัสจำนวนเต็ม

ขนาดชื่อเอกสาร

ขนาดชื่อเอกสารคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดของรหัสคอลเล็กชันและรหัสเอกสารแต่ละรายการในเส้นทางไปยังเอกสาร
  • อีก 16 ไบต์

สำหรับเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id ขนาดชื่อเอกสารคือ 6 + 5 + 6 + 11 + 16 = 44 ไบต์

  • 6 ไบต์สำหรับรหัสคอลเล็กชัน users
  • 5 ไบต์สำหรับรหัสเอกสาร jeff
  • 6 ไบต์สำหรับรหัสคอลเล็กชัน tasks
  • 11 ไบต์สำหรับรหัสเอกสาร my_task_id
  • อีก 16 ไบต์

ขนาดค่าในช่อง

ตารางต่อไปนี้แสดงขนาดค่าในช่องตามประเภท

ประเภท ขนาด
อาร์เรย์ ผลรวมของขนาดค่า
บูลีน 1 ไบต์
ไบต์ ความยาวไบต์
วันที่และเวลา 8 ไบต์
เลขจุดลอยตัว 8 ไบต์
จุดทางภูมิศาสตร์ 16 ไบต์
จำนวนเต็ม 8 ไบต์
แผนที่ ขนาดของแผนที่ ซึ่งคำนวณในลักษณะเดียวกับ ขนาดเอกสาร
Null 1 ไบต์
ข้อมูลอ้างอิง ขนาดชื่อเอกสาร
สตริงข้อความ จำนวนไบต์ที่เข้ารหัส UTF-8 + 1
Vector 8 ไบต์ต่อมิติข้อมูล

ตัวอย่างเช่น ช่องบูลีนชื่อ done จะใช้ 6 ไบต์

  • 5 ไบต์สำหรับชื่อช่อง done
  • 1 ไบต์สำหรับค่าบูลีนของช่อง

ขนาดเอกสาร

ขนาดเอกสารคือผลรวมของข้อมูลต่อไปนี้

ตัวอย่างนี้ใช้สำหรับเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

ขนาดรวมของช่องคือ 71 ไบต์

ชื่อและค่าในช่อง ขนาดช่องในหน่วยไบต์
"type": "Personal" 14
5 สำหรับชื่อช่อง + 9 สำหรับค่าสตริงของช่อง
"done": false 6
5 สำหรับชื่อช่อง + 1 สำหรับค่าบูลีนของช่อง
"priority": 1 17
9 สำหรับชื่อช่อง + 8 สำหรับค่าจำนวนเต็มของช่อง
"description": "Learn Cloud Firestore" 34
12 สำหรับชื่อช่อง + 22 สำหรับค่าสตริงของช่อง

ดังนั้นขนาดเอกสารจึงเป็น 44 + 71 + 32 = 147 ไบต์

  • 44 ไบต์สำหรับชื่อเอกสาร
  • 71 ไบต์สำหรับช่อง
  • อีก 32 ไบต์

ขนาดรายการดัชนี

ระบบจะคำนวณขนาดรายการดัชนีดังนี้สำหรับดัชนีแบบช่องเดียวและดัชนีผสม

ขนาดรายการดัชนีแบบช่องเดียว

ขนาดรายการดัชนีแบบช่องเดียวจะขึ้นอยู่กับว่าดัชนีมีขอบเขตเป็นคอลเล็กชันหรือกลุ่มคอลเล็กชัน

ขอบเขตคอลเล็กชัน

ขนาดรายการในดัชนีแบบช่องเดียวที่มีขอบเขตคอลเล็กชันคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
  • ขนาดชื่อเอกสารของเอกสารระดับบน ของเอกสารที่จัดทำดัชนี
  • ขนาดสตริงของชื่อช่องที่จัดทำดัชนี
  • ขนาดค่าในช่องที่จัดทำดัชนี
  • อีก 32 ไบต์

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

สำหรับดัชนีแบบช่องเดียวที่มีขอบเขตคอลเล็กชันซึ่งจัดทำดัชนีช่อง done ขนาดรวมของรายการในดัชนีนี้คือ 109 ไบต์

  • 44 ไบต์สำหรับชื่อเอกสาร users/jeff/tasks/my_task_id
  • 27 ไบต์สำหรับชื่อเอกสารของเอกสารระดับบน users/jeff
  • 5 ไบต์สำหรับชื่อช่อง done
  • 1 ไบต์สำหรับค่าบูลีนของช่อง
  • อีก 32 ไบต์

ขอบเขตกลุ่มคอลเล็กชัน

ขนาดรายการในดัชนีแบบช่องเดียวที่มีขอบเขตกลุ่มคอลเล็กชันคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
  • ขนาดสตริงของชื่อช่องที่จัดทำดัชนี
  • ขนาดค่าในช่องที่จัดทำดัชนี
  • อีก 48 ไบต์

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

สำหรับดัชนีแบบช่องเดียวที่มีขอบเขตกลุ่มคอลเล็กชันซึ่งจัดทำดัชนีช่อง done ขนาดรวมของรายการในดัชนีนี้คือ 98 ไบต์

  • 44 ไบต์สำหรับชื่อเอกสาร users/jeff/tasks/my_task_id
  • 5 ไบต์สำหรับชื่อช่อง done
  • 1 ไบต์สำหรับค่าบูลีนของช่อง
  • อีก 48 ไบต์

ขนาดรายการดัชนีผสม

ขนาดรายการในดัชนีผสมจะขึ้นอยู่กับว่าดัชนีมีขอบเขตเป็นคอลเล็กชันหรือกลุ่มคอลเล็กชัน

ขอบเขตคอลเล็กชัน

ขนาดรายการดัชนีในดัชนีผสมที่มีขอบเขตคอลเล็กชันคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
  • ขนาดชื่อเอกสารของเอกสารระดับบน ของเอกสารที่จัดทำดัชนี
  • ผลรวมของค่าในช่องที่จัดทำดัชนี field values
  • อีก 32 ไบต์

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

สำหรับดัชนีผสมที่มีขอบเขตคอลเล็กชันซึ่งจัดทำดัชนีช่อง done และ priority (ทั้ง 2 ช่องเรียงจากน้อยไปมาก) ขนาดรวมของรายการในดัชนีนี้คือ 112 ไบต์

  • 44 ไบต์สำหรับชื่อเอกสาร users/jeff/tasks/my_task_id
  • 27 ไบต์สำหรับชื่อเอกสารของเอกสารระดับบน users/jeff
  • 1 ไบต์สำหรับค่าบูลีนของช่อง
  • 8 ไบต์สำหรับค่าจำนวนเต็มของช่อง
  • อีก 32 ไบต์

ขอบเขตกลุ่มคอลเล็กชัน

ขนาดรายการดัชนีในดัชนีผสมที่มีขอบเขตกลุ่มคอลเล็กชันคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
  • ผลรวมของค่าในช่องที่จัดทำดัชนี field values
  • อีก 32 ไบต์

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มีรหัสเอกสารสตริงเป็น my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

สำหรับดัชนีผสมที่มีขอบเขตกลุ่มคอลเล็กชันซึ่งจัดทำดัชนีช่อง done และ priority (ทั้ง 2 ช่องเรียงจากน้อยไปมาก) ขนาดรวมของรายการดัชนีในดัชนีนี้คือ 85 ไบต์

  • 44 ไบต์สำหรับชื่อเอกสาร users/jeff/tasks/my_task_id
  • 1 ไบต์สำหรับค่าบูลีนของช่อง
  • 8 ไบต์สำหรับค่าจำนวนเต็มของช่อง
  • อีก 32 ไบต์

ขนาดรายการดัชนีการค้นหาข้อความ

ขนาดรายการดัชนีการค้นหาข้อความในดัชนีคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดสตริงของชื่อคอลเล็กชัน
  • ขนาดค่ารหัสเอกสาร
  • ผลรวมของไบต์จากค่าในช่องที่จัดทำดัชนี (x2)
  • อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป

พิจารณาตัวอย่างสำหรับเหตุการณ์การแทรกสำหรับเอกสารที่มีรหัสเอกสาร my_task_id ในคอลเล็กชัน tasks

ขนาดรวมของรายการดัชนีการค้นหาข้อความใน description คือ 105 ไบต์ โดยอิงตามข้อมูลต่อไปนี้

  • 6 ไบต์สำหรับชื่อคอลเล็กชัน tasks
  • 11 ไบต์สำหรับค่ารหัสเอกสาร
  • 44 ไบต์ โดยอิงตาม 22 ไบต์สำหรับช่อง description x2
  • อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป

ขนาดรายการดัชนีภูมิสารสนเทศ

ขนาดรายการดัชนีภูมิสารสนเทศในดัชนีคือผลรวมของข้อมูลต่อไปนี้

  • ขนาดสตริงของชื่อคอลเล็กชัน
  • ขนาดค่ารหัสเอกสาร
  • 128 ไบต์สำหรับจุดทางภูมิศาสตร์ที่จัดทำดัชนีแต่ละจุด
  • อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป

พิจารณาตัวอย่างสำหรับเหตุการณ์การแทรกสำหรับเอกสารที่มีรหัสเอกสาร my_place ในคอลเล็กชัน places

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

ขนาดรวมของรายการดัชนีภูมิสารสนเทศใน location คือ 192 ไบต์ โดยอิงตามข้อมูลต่อไปนี้

  • 7 ไบต์สำหรับชื่อคอลเล็กชัน places
  • 9 ไบต์สำหรับรหัสเอกสาร
  • 128 ไบต์สำหรับช่อง location
  • อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป

ขั้นตอนถัดไป

ดูข้อมูลเกี่ยวกับ Cloud Firestore ราคา