หน้านี้อธิบายขนาดพื้นที่เก็บข้อมูลของเอกสาร ชื่อเอกสาร ฟิลด์ และรายการดัชนีใน Cloud Firestore
คุณสามารถเรียนรู้เกี่ยวกับต้นทุนของพื้นที่เก็บข้อมูลนี้ได้ที่ ราคา Cloud Firestoreขนาดสาย
ขนาดสตริงคำนวณเป็นจำนวนไบต์ ที่เข้ารหัส UTF-8 + 1
ข้อมูลต่อไปนี้จะถูกจัดเก็บเป็นสตริง:
- รหัสคอลเลกชัน
- รหัสเอกสารสตริง
- ชื่อเอกสาร
- ชื่อฟิลด์
- ค่าฟิลด์สตริง
ตัวอย่างเช่น:
-
tasks
ID คอลเลกชันใช้ 5 ไบต์ + 1 ไบต์ รวมเป็น 6 ไบต์ -
description
ชื่อฟิลด์ใช้ 11 ไบต์ + 1 ไบต์ รวมเป็น 12 ไบต์
ขนาดรหัสเอกสาร
ขนาดของ ID เอกสารคือ ขนาดสตริง สำหรับ ID สตริงหรือ 8 ไบต์สำหรับ ID จำนวนเต็ม
ขนาดชื่อเอกสาร
ขนาดของชื่อเอกสารคือผลรวมของ:
- ขนาดของแต่ละรหัสคอลเลกชันและรหัสเอกสารในเส้นทางไปยังเอกสาร
- เพิ่มอีก 16 ไบต์
สำหรับเอกสารในคอลเลกชันย่อย users/jeff/tasks
ที่มี ID เอกสารสตริงเป็น my_task_id
ขนาดชื่อเอกสารคือ 6 + 5 + 6 + 11 + 16 = 44 ไบต์:
- 6 ไบต์สำหรับ ID คอลเลก
users
- 5 ไบต์สำหรับ ID เอกสาร
jeff
- 6 ไบต์สำหรับ ID การรวบรวม
tasks
- 11 ไบต์สำหรับ ID เอกสาร
my_task_id
- เพิ่มอีก 16 ไบต์
ขนาดค่าฟิลด์
ตารางต่อไปนี้แสดงขนาดของค่าฟิลด์ตามประเภท
พิมพ์ | ขนาด |
---|---|
อาร์เรย์ | ผลรวมของขนาดของค่า |
บูลีน | 1 ไบต์ |
ไบต์ | ความยาวไบต์ |
วันและเวลา | 8 ไบต์ |
จำนวนจุดลอยตัว | 8 ไบต์ |
จุดทางภูมิศาสตร์ | 16 ไบต์ |
จำนวนเต็ม | 8 ไบต์ |
แผนที่ | ขนาดของแผนที่คำนวณแบบเดียวกับ ขนาดเอกสาร |
โมฆะ | 1 ไบต์ |
อ้างอิง | ขนาดชื่อเอกสาร |
สตริงข้อความ | จำนวนไบต์ที่เข้ารหัส UTF-8 + 1 |
ตัวอย่างเช่น ฟิลด์บูลีนที่ชื่อ done
จะใช้ขนาด 6 ไบต์:
- 5 ไบต์สำหรับชื่อฟิลด์
done
- 1 ไบต์สำหรับค่าบูลีน
ขนาดเอกสาร
ขนาดของเอกสารคือผลรวมของ:
- ขนาดชื่อเอกสาร
- ผลรวมของ ขนาดสตริง ของชื่อฟิลด์แต่ละชื่อ
- ผลรวมของขนาดของ ค่าแต่ละฟิลด์
- เพิ่ม 32 ไบต์
ตัวอย่างนี้ใช้สำหรับเอกสารในคอลเลกชันย่อย 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 ไบต์
ขนาดรายการดัชนี
ขนาดรายการดัชนีได้รับการคำนวณดังนี้สำหรับดัชนีช่องเดียวและดัชนีรวม
ขนาดรายการดัชนีฟิลด์เดียว
ขนาดของรายการดัชนีเขตข้อมูลเดียวขึ้นอยู่กับว่าดัชนีถูกกำหนดขอบเขตไว้ที่คอลเลกชันหรือกลุ่มคอลเลกชัน
ขอบเขตการรวบรวม
ขนาดของรายการในดัชนีช่องเดียวที่มีขอบเขตการรวบรวมคือผลรวมของ:
- ขนาดของชื่อเอกสาร ของเอกสารที่จัดทำดัชนี
- ขนาดชื่อเอกสาร ของเอกสารหลักของเอกสารที่จัดทำดัชนี
- ขนาดสตริง ของชื่อฟิลด์ที่จัดทำดัชนี
- ขนาดของ ค่าฟิลด์ ที่จัดทำดัชนี
- เพิ่ม 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 ไบต์
ขอบเขตกลุ่มคอลเลกชัน
ขนาดของรายการในดัชนีเขตข้อมูลเดียวที่มีขอบเขตกลุ่มคอลเลกชันคือผลรวมของ:
- ขนาดของชื่อเอกสาร ของเอกสารที่จัดทำดัชนี
- ขนาดสตริง ของชื่อฟิลด์ที่จัดทำดัชนี
- ขนาดของ ค่าฟิลด์ ที่จัดทำดัชนี
- เพิ่ม 48 ไบต์
พิจารณาเอกสารในคอลเลกชันย่อย 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 ไบต์
ขนาดรายการดัชนีผสม
ขนาดของรายการในดัชนีผสมขึ้นอยู่กับว่าดัชนีนั้นถูกกำหนดขอบเขตไว้ที่คอลเลกชันหรือกลุ่มคอลเลกชัน
ขอบเขตการรวบรวม
ขนาดของรายการดัชนีในดัชนีผสมที่มีขอบเขตการรวบรวมคือผลรวมของ:
- ขนาดของชื่อเอกสาร ของเอกสารที่จัดทำดัชนี
- ขนาดชื่อเอกสาร ของเอกสารหลักของเอกสารที่จัดทำดัชนี
- ผลรวมของ ค่าฟิลด์ ที่จัดทำดัชนี
- เพิ่ม 32 ไบต์
พิจารณาเอกสารในคอลเลกชันย่อย 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 ไบต์
ขอบเขตกลุ่มคอลเลกชัน
ขนาดของรายการดัชนีในดัชนีผสมที่มีขอบเขตกลุ่มคอลเลกชันคือผลรวมของ:
- ขนาดของชื่อเอกสาร ของเอกสารที่จัดทำดัชนี
- ผลรวมของ ค่าฟิลด์ ที่จัดทำดัชนี
- เพิ่ม 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 ไบต์