גודל נפח האחסון

בדף הזה מתוארים גודלי האחסון של מסמכים, שדות ורשומות באינדקס ב-Cloud Firestore.

מידע על עלויות האחסון מופיע בדף תמחור.

גודל המחרוזת

גודלי המחרוזות מחושבים לפי מספר הבייטים בקידוד UTF-8 + 1.

הערכים הבאים מאוחסנים כמחרוזות:

  • שם האוסף
  • שמות השדות
  • ערכי שדות של מחרוזות (כולל _id)

לדוגמה:

  • שם האוסף tasks משתמש ב-5 בייטים + בייט אחד, ובסך הכול 6 בייטים.
  • שם השדה description משתמש ב-11 בייטים + בייט אחד, ובסך הכול 12 בייטים.

גודל הערך בשדה

בטבלה הבאה מוצג הגודל של ערכי השדות לפי סוג.

סוג גודל
מערך סכום הגדלים של הערכים שלו
בוליאני בייט אחד
נתונים בינאריים אורך בבייטים + 1 לסוג משנה לא גנרי (לא 0)
תאריך ‫8 בייטים
זוגית ‫8 בייטים
Double128 ‫16 בייטים
מספר שלם של 32 ביט ‫4 בייטים
מספר שלם של 64 ביט (ארוך) ‫8 בייטים
אובייקט הסכום של גודלי המחרוזות של כל שם שדה ושל הגדלים של כל ערך שדה באובייקט המוטמע
מפתח מינימלי בייט אחד
מפתח מקסימלי בייט אחד
Null בייט אחד
ביטוי רגולרי (אורך התבנית + 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 (שניהם בסדר עולה), הגודל הכולל של הרשומה באינדקס הזה הוא 70 בייטים:

  • ‫6 בייטים לשם האוסף tasks
  • ‫11 בייטים לערך השדה _id
  • ‫1 בייט לערך של השדה הבוליאני
  • ‫4 בייטים לערך של שדה מספר שלם של 32 ביט
  • ‫48 בייטים נוספים

באינדקסים דלילים, אם מסמך לא כולל אף אחד מהשדות, לא נוצרת רשומה באינדקס. אם מסמך מכיל לפחות אחד מהשדות שנוספו לאינדקס, נוצר ערך באינדקס שבו השדות החסרים שנוספו לאינדקס מוגדרים כ-NULL.

גודל הרשומה של אירוע בזרם השינויים

הגודל של אירוע ב-change stream הוא הסכום של:

  • הסכום של גודל המחרוזת של שם האוסף (כפול 2).
  • לאירועי הוספה ועדכון של מסמך:
    • סכום גודל המחרוזת של כל שם שדה ב-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"
  },
}

הגודל הכולל של האירוע ב-change stream הוא 149 בייטים:

  • ‫92 בייטים למטא-נתונים כלליים
  • ‫12 בייטים לפי שם האוסף tasks (6 בייטים) * 2
  • ‫11 בייטים לערך השדה _id
  • ‫12 בייטים לשם השדה description
  • ‫22 בייטים לערך של השדה description

גודל הרשומה באינדקס של חיפוש הטקסט

הגודל של רשומה באינדקס של חיפוש טקסט הוא הסכום של:

  • גודל המחרוזת של שם האוסף
  • גודל הערך _id
  • סכום הבייטים מערכי השדות שנוספו לאינדקס (כפול 2)
  • ‫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 כפול 2
  • ‫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 בייטים נוספים למטא-נתונים כלליים

המאמרים הבאים

מידע על תמחור