توضّح هذه الصفحة حجم التخزين للمستندات والحقول وإدخالات الفهرس في Cloud Firestore.
يمكنك الاطّلاع على تكاليف مساحة التخزين هذه في صفحة الأسعار.
حجم السلسلة
يتم احتساب أحجام السلاسل على أنّها عدد وحدات البايت بترميز UTF-8 + 1.
يتم تخزين ما يلي كسلاسل:
- اسم المجموعة
- أسماء الحقول
- قيم حقول السلسلة (بما في ذلك
_id)
على سبيل المثال:
- يستخدم اسم المجموعة
tasks5 بايت + 1 بايت، أي ما مجموعه 6 بايت. - يستخدم اسم الحقل
description11 بايت + 1 بايت، أي ما مجموعه 12 بايت.
حجم قيمة الحقل
يوضّح الجدول التالي حجم قيم الحقول حسب النوع.
| النوع | الحجم |
|---|---|
| مصفوفة | مجموع أحجام القيم |
| قيمة منطقية | 1 بايت |
| البيانات الثنائية | طول البايت + 1 لنوع فرعي غير عام (غير 0) |
| التاريخ | 8 بايت |
| مزدوج | 8 بايت |
| Double128 | 16 بايت |
| عدد صحيح 32 بت | 4 بايت |
| عدد صحيح 64 بت (طويل) | 8 بايت |
| عنصر | مجموع أحجام السلاسل لكل اسم حقل وأحجام كل قيمة حقل في العنصر المضمّن |
| مفتاح الحد الأدنى | 1 بايت |
| Max Key | 1 بايت |
| خالية | 1 بايت |
| تعبير عادي | (طول النمط + 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 - بايت واحد لقيمة الحقل المنطقي
- 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 بايت إضافية للبيانات الوصفية العامة