ขนาดของพื้นที่เก็บข้อมูล

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

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

ขนาดสตริง

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

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

  • ชื่อคอลเล็กชัน
  • ชื่อช่องต่างๆ
  • ค่าในช่องสตริง (รวมถึง _id)

ตัวอย่าง

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

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

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

ประเภท ขนาด
อาร์เรย์ ผลรวมของขนาดค่า
บูลีน 1 ไบต์
ข้อมูลไบนารี ความยาวไบต์ + 1 สำหรับประเภทย่อยที่ไม่ใช่ทั่วไป (ไม่ใช่ 0)
วันที่ 8 ไบต์
เตียงคู่ 8 ไบต์
Double128 16 ไบต์
จำนวนเต็มแบบ 32 บิต 4 ไบต์
จำนวนเต็มแบบ 64 บิต (ยาว) 8 ไบต์
ออบเจ็กต์ ผลรวมของขนาดสตริงของชื่อช่องแต่ละช่องและขนาดของค่าในช่องแต่ละช่องในออบเจ็กต์ที่ฝัง
คีย์ต่ำ 1 ไบต์
คีย์สูง 1 ไบต์
Null 1 ไบต์
นิพจน์ทั่วไป (ความยาวรูปแบบ + 1) + (ความยาวตัวเลือก + 1)
การประทับเวลา 8 ไบต์
สตริง จำนวนไบต์ที่เข้ารหัส UTF-8 + 1

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

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

ขนาดเอกสาร

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

ตัวอย่างนี้ใช้สำหรับเอกสารในคอลเล็กชัน tasks

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

ขนาดรวมของช่องคือ 78 ไบต์ ดังนี้

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

ดังนั้นขนาดเอกสารจึงเป็น 6 + 78 + 48 = 132 ไบต์ ดังนี้

  • 6 สำหรับชื่อคอลเล็กชัน
  • 78 ไบต์สำหรับช่อง
  • อีก 48 ไบต์

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

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

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

พิจารณาเอกสารในคอลเล็กชัน tasks

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

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

  • 6 ไบต์สำหรับชื่อคอลเล็กชัน tasks
  • 11 ไบต์สำหรับค่าในช่อง _id
  • 1 ไบต์สำหรับค่าในช่องบูลีน
  • 4 ไบต์สำหรับค่าในช่องจำนวนเต็มแบบ 32 บิต
  • อีก 48 ไบต์

สำหรับดัชนีแบบเบาบาง หากเอกสารไม่มีช่องใดๆ ระบบจะไม่สร้างรายการดัชนี หากเอกสารมีช่องที่ทำดัชนีอย่างน้อย 1 ช่อง ระบบจะสร้างรายการดัชนีโดยตั้งค่าช่องที่ทำดัชนีที่ไม่มีเป็น NULL

ขนาดรายการเหตุการณ์ของ Change Stream

ขนาดของเหตุการณ์ Change Stream คือผลรวมของข้อมูลต่อไปนี้

  • ผลรวมของขนาดสตริงของชื่อคอลเล็กชัน (x2)
  • สำหรับเหตุการณ์แทรกและอัปเดตสำหรับเอกสาร
    • ผลรวมของขนาดสตริงของชื่อช่องแต่ละช่องใน fullDocument หรือ updateDescription (ยกเว้น _id)
    • ผลรวมของขนาดของ ค่าในช่องแต่ละค่าใน fullDocument หรือ updateDescription (รวมถึง _id)
  • หากใช้ได้กับการทำธุรกรรมหลายเอกสาร ให้เพิ่มอีก 24 ไบต์สำหรับ lsid และ txnNumber
  • อีก 92 ไบต์

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

{
  "_id": { <Resume Token> },
  "operationType": "insert",
  "clusterTime": <Timestamp>,
  "wallTime": <ISODate>,
  "ns": {
     "db": "db",
     "coll": "tasks"
  },
  "documentKey": {
     "_id": "my_task_id"
  },
  "fullDocument": {
     "_id": "my_task_id",
     "description": "Learn Cloud Firestore"
  },
}

ขนาดรวมของเหตุการณ์ Change Stream คือ 149 ไบต์ ดังนี้

  • 92 ไบต์สำหรับข้อมูลเมตาทั่วไป
  • 12 ไบต์ตามชื่อคอลเล็กชัน tasks (6 ไบต์) * 2
  • 11 ไบต์สำหรับค่าในช่อง _id
  • 12 ไบต์สำหรับชื่อช่อง description
  • 22 ไบต์สำหรับค่าในช่อง description

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดูข้อมูลเกี่ยวกับการกำหนดราคา