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

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

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

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