חישוב של גודל האחסון

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

במחירון של Cloud Firestore מפורטות העלויות של האחסון הזה.

גודל המחרוזת

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

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

  • מזהי קולקציות
  • מזהי מסמכים מסוג מחרוזת
  • שמות המסמכים
  • שמות השדות
  • ערכי שדות של מחרוזות

לדוגמה:

  • מזהה האוסף tasks משתמש ב-5 בייטים + בייט אחד, ובסך הכול 6 בייטים.
  • שם השדה description משתמש ב-11 בייטים + בייט אחד, ובסך הכול 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 בייטים נוספים

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

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

סוג גודל
מערך סכום הגדלים של הערכים שלו
בוליאני בייט אחד
בייטים אורך בבייטים
תאריך ושעה ‫8 בייטים
מספר בשיטת נקודה צפה ‫8 בייטים
נקודה גיאוגרפית ‫16 בייטים
מספר שלם ‫8 בייטים
מפה גודל המפה, שמחושב באותו אופן כמו גודל המסמך
Null בייט אחד
חומרי עזר גודל שם המסמך
מחרוזת טקסט מספר הבייטים בקידוד UTF-8‏ + 1
וקטור ‫8 בייטים לכל מאפיין

לדוגמה, שדה בוליאני בשם done ישתמש ב-6 בייטים:

  • ‫5 בייטים לשם השדה done
  • ‫1 בייט לערך הבוליאני

גודל המסמך

גודל המסמך הוא הסכום של:

הדוגמה הזו היא למסמך באוסף המשנה 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 בייטים נוספים

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

הגודל של רשומות באינדקסים מחושב באופן הבא לאינדקסים של שדה יחיד ולאינדקסים מורכבים.

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

הגודל של רשומה באינדקס של שדה יחיד תלוי בהיקף של האינדקס – אוסף או קבוצת אוספים.

היקף האוסף

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

נניח שיש מסמך באוסף המשנה 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 בייטים נוספים

היקף קבוצת האוספים

הגודל של רשומה באינדקס של שדה יחיד עם היקף של קבוצת אוספים הוא הסכום של:

נניח שיש מסמך באוסף המשנה 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 בייטים נוספים

גודל הרשומה באינדקס מורכב

הגודל של רשומה באינדקס מורכב תלוי בהיקף של האינדקס – אם הוא מוגדר לאוסף או לקבוצת אוספים.

היקף האוסף

הגודל של רשומה באינדקס מורכב עם היקף אוסף הוא הסכום של:

נניח שיש מסמך באוסף המשנה users/jeff/tasks עם מזהה מסמך מסוג מחרוזת my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

באינדקס מורכב עם היקף אוסף שמוסיף לאינדקס את השדות done ו-priority (שניהם בסדר עולה), הגודל הכולל של הרשומה באינדקס הזה הוא 112 בייטים:

  • ‫44 בייטים לשם המסמך users/jeff/tasks/my_task_id
  • ‫27 בייטים לשם המסמך של מסמך ההורה users/jeff
  • ‫1 בייט לערך של השדה הבוליאני
  • ‫8 בייטים לערך של שדה המספר השלם
  • ‫32 בייטים נוספים

היקף קבוצת האוספים

הגודל של רשומה באינדקס מורכב עם היקף של קבוצת אוספים הוא הסכום של:

נניח שיש מסמך באוסף המשנה users/jeff/tasks עם מזהה מסמך מסוג מחרוזת my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

באינדקס מורכב עם היקף של קבוצת אוספים שמוסיף לאינדקס את השדות done ו-priority (שניהם בסדר עולה), הגודל הכולל של הרשומה באינדקס הזה הוא 85 בייטים:

  • ‫44 בייטים לשם המסמך users/jeff/tasks/my_task_id
  • ‫1 בייט לערך של השדה הבוליאני
  • ‫8 בייטים לערך של שדה המספר השלם
  • ‫32 בייטים נוספים

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

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

  • גודל המחרוזת של שם האוסף
  • גודל הערך של מזהה המסמך
  • סכום הבייטים מערכי השדות שנוספו לאינדקס (כפול 2)
  • ‫48 בייטים נוספים למטא-נתונים כלליים

לדוגמה, נניח שיש אירוע הוספה של מסמך עם מזהה המסמך my_task_id באוסף tasks:

הגודל הכולל של רשומה באינדקס של חיפוש טקסט ב-description הוא 105 בייטים, על סמך:

  • ‫6 בייטים לשם האוסף tasks
  • ‫11 בייטים לערך של מזהה המסמך
  • ‫44 בייטים, על סמך 22 בייטים לשדה description כפול 2
  • ‫48 בייטים נוספים למטא-נתונים כלליים

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

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

  • גודל המחרוזת של שם האוסף
  • גודל הערך של מזהה המסמך
  • ‫128 בייטים לכל נקודה גיאוגרפית שנוספה לאינדקס
  • ‫48 בייטים נוספים למטא-נתונים כלליים

לדוגמה, נניח שיש אירוע הוספה של מסמך עם מזהה המסמך my_place באוסף places:

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

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

  • ‫7 בייטים לשם האוסף places
  • ‫9 בייטים למזהה המסמך
  • ‫128 בייטים בשדה location
  • ‫48 בייטים נוספים למטא-נתונים כלליים

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

מידע על התמחור של Cloud Firestore