หน้านี้อธิบายขนาดพื้นที่เก็บข้อมูลของเอกสาร ชื่อเอกสาร ช่อง และรายการดัชนีใน 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 ไบต์สำหรับค่าบูลีน
ขนาดเอกสาร
ขนาดของเอกสารคือผลรวมของ:
- ขนาดชื่อเอกสาร
- ผลรวมของขนาดสตริงของชื่อช่องแต่ละชื่อ
- ผลรวมของขนาดของค่าช่องแต่ละค่า
- เพิ่มเติม 32 ไบต์
ตัวอย่างนี้มีไว้สำหรับเอกสารในคอลเล็กชันย่อย 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 ไบต์
ขนาดรายการดัชนีผสม
ขนาดของรายการในดัชนีผสมขึ้นอยู่กับว่าดัชนีนั้นกำหนดขอบเขตไว้เป็นคอลเล็กชันหรือกลุ่มคอลเล็กชัน
ขอบเขตคอลเล็กชัน
ขนาดของรายการดัชนีในดัชนีผสมที่มีขอบเขตการรวบรวมคือผลรวมของสิ่งต่อไปนี้
- ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
- ขนาดชื่อเอกสารของเอกสารระดับบนสุด ของเอกสารที่จัดทำดัชนี
- ผลรวมของค่าช่องที่จัดทำดัชนีแล้ว
- เพิ่มเติม 32 ไบต์
ลองพิจารณาเอกสารในคอลเล็กชันย่อย users/jeff/tasks
ที่มีรหัสเอกสารสตริง 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
ที่มีรหัสเอกสารสตริง 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 ไบต์