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