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