หน้านี้อธิบายขนาดพื้นที่เก็บข้อมูลของเอกสาร ชื่อเอกสาร ช่อง และ รายการดัชนีใน 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 ไบต์สำหรับค่าบูลีนของช่อง
ขนาดเอกสาร
ขนาดเอกสารคือผลรวมของข้อมูลต่อไปนี้
- ขนาดชื่อเอกสาร
- ผลรวมของขนาดสตริงของชื่อช่องแต่ละรายการ
- ผลรวมของขนาดค่าในช่อง แต่ละรายการ
- อีก 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 ไบต์
ขนาดรายการดัชนีผสม
ขนาดรายการในดัชนีผสมจะขึ้นอยู่กับว่าดัชนีมีขอบเขตเป็นคอลเล็กชันหรือกลุ่มคอลเล็กชัน
ขอบเขตคอลเล็กชัน
ขนาดรายการดัชนีในดัชนีผสมที่มีขอบเขตคอลเล็กชันคือผลรวมของข้อมูลต่อไปนี้
- ขนาดชื่อเอกสารของเอกสารที่จัดทำดัชนี
- ขนาดชื่อเอกสารของเอกสารระดับบน ของเอกสารที่จัดทำดัชนี
- ผลรวมของค่าในช่องที่จัดทำดัชนี 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 ไบต์สำหรับช่อง
descriptionx2 - อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป
ขนาดรายการดัชนีภูมิสารสนเทศ
ขนาดรายการดัชนีภูมิสารสนเทศในดัชนีคือผลรวมของข้อมูลต่อไปนี้
- ขนาดสตริงของชื่อคอลเล็กชัน
- ขนาดค่ารหัสเอกสาร
- 128 ไบต์สำหรับจุดทางภูมิศาสตร์ที่จัดทำดัชนีแต่ละจุด
- อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป
พิจารณาตัวอย่างสำหรับเหตุการณ์การแทรกสำหรับเอกสารที่มีรหัสเอกสาร my_place ในคอลเล็กชัน places
{ "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
ขนาดรวมของรายการดัชนีภูมิสารสนเทศใน location คือ 192 ไบต์ โดยอิงตามข้อมูลต่อไปนี้
- 7 ไบต์สำหรับชื่อคอลเล็กชัน
places - 9 ไบต์สำหรับรหัสเอกสาร
- 128 ไบต์สำหรับช่อง
location - อีก 48 ไบต์สำหรับข้อมูลเมตาทั่วไป