בדף הזה מתואר גודל האחסון של מסמכים, שדות ורשומות אינדקס ב-Cloud Firestore.
מידע על העלויות של נפח האחסון הזה זמין בדף תמחור.
גודל המחרוזת
גודל המחרוזת מחושב כמספר הבייטים בקידוד UTF-8 + 1.
הנתונים הבאים מאוחסנים כמחרוזות:
- שם האוסף
- שמות השדות
- ערכים של שדות מחרוזת (כולל
_id)
לדוגמה:
- שם האוסף
tasksמשתמש ב-5 בייטים + בבייט אחד, כלומר ב-6 בייטים בסך הכול. - שם השדה
descriptionמשתמש ב-11 בייטים + בבייט אחד, כלומר ב-12 בייטים בסך הכול.
גודל ערך השדה
בטבלה הבאה מוצג הגודל של ערכי השדות לפי סוג.
| סוג | גודל |
|---|---|
| מערך | סכום הגדלים של הערכים שלו |
| בוליאני | בייט אחד |
| נתונים בינאריים | אורך בבייט + 1 לסוג משנה לא כללי (לא 0) |
| תאריך | 8 בייטים |
| זוגית | 8 בייטים |
| Double128 | 16 בייטים |
| מספר שלם (integer) ב-32 ביט | 4 בייטים |
| מספר שלם (long) ב-64 ביט | 8 בייטים |
| אובייקט | סכום הגדלים של המחרוזות של כל שם שדה ושל כל ערך שדה באובייקט המוטמע |
| מפתח מינימום | בייט אחד |
| Max Key | בייט אחד |
| Null | בייט אחד |
| ביטוי רגולרי | (אורך התבנית + 1) + (אורך האפשרויות + 1) |
| חותמת זמן | 8 בייטים |
| מחרוזת | מספר הבייטים בקידוד UTF-8 + 1 |
לדוגמה, שדה בוליאני בשם done ישתמש ב-6 בייטים:
- 5 בייט לשם השדה
done - בייט אחד לערך הבוליאני
גודל המסמך
גודל המסמך הוא הסכום של:
- גודל המחרוזת של שם האוסף
- סכום גודל המחרוזת של כל שם שדה (למעט
_id) - סכום הגודל של כל ערך שדה (כולל
_id) - 48 בייטים נוספים
הדוגמה הזו היא למסמך באוסף 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 - סכום ערכי השדות שנוספו לאינדקס
- 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.
שינוי הגודל של רשומת אירוע בשידור חי
הגודל של אירוע בפיד השינויים הוא הסכום של:
- סכום גודל המחרוזת של שם האוסף (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כפול 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 בייטים נוספים למטא-נתונים כלליים