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

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

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

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

พิจารณาเอกสารในคอลเล็กชัน 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

ขนาดรายการเหตุการณ์ของสตรีมการเปลี่ยนแปลง

ขนาดของเหตุการณ์สตรีมการเปลี่ยนแปลงคือผลรวมของสิ่งต่อไปนี้

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

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

{
  "_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"
  },
}

ขนาดรวมของเหตุการณ์สตรีมการเปลี่ยนแปลงคือ 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 ไบต์เพิ่มเติมสำหรับข้อมูลเมตาทั่วไป

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

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