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

หน้านี้จะอธิบายขนาดพื้นที่เก็บข้อมูลของเอกสาร ชื่อเอกสาร ฟิลด์ และ รายการดัชนีใน 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

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

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

ขนาดเอกสาร

ขนาดของเอกสารคือผลรวมของ:

ตัวอย่างนี้มีไว้สำหรับเอกสารในคอลเล็กชันย่อย users/jeff/tasks ที่มี ID เอกสารสตริง 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 ไบต์

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

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

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

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

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

ขนาดของรายการในดัชนีช่องเดียวที่มีขอบเขตการรวบรวมคือผลรวม จาก:

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ด้วย ID เอกสารสตริงของ 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 ไบต์

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

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

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ด้วย ID เอกสารสตริงของ 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 ไบต์

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

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

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

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

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ด้วย ID เอกสารสตริงของ my_task_id:

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

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

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

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

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

พิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks ด้วย ID เอกสารสตริงของ my_task_id:

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

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

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

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

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