इस पेज पर, Cloud Firestore में दस्तावेज़ों, फ़ील्ड, और इंडेक्स एंट्री के स्टोरेज साइज़ के बारे में बताया गया है.
इस स्टोरेज की कीमत के बारे में जानने के लिए, कीमत पेज पर जाएं.
स्ट्रिंग का साइज़
स्ट्रिंग के साइज़ का हिसाब, UTF-8 एन्कोड किए गए बाइट की संख्या + 1 के तौर पर लगाया जाता है.
इनको स्ट्रिंग के तौर पर सेव किया जाता है:
- कलेक्शन का नाम
- फ़ील्ड के नाम
- स्ट्रिंग फ़ील्ड की वैल्यू (इसमें
_idभी शामिल है)
उदाहरण के लिए:
- कलेक्शन के नाम
tasksके लिए, 5 बाइट + 1 बाइट का इस्तेमाल किया जाता है. इस तरह, कुल 6 बाइट का इस्तेमाल किया जाता है. - फ़ील्ड के नाम
descriptionमें 11 बाइट + 1 बाइट का इस्तेमाल किया गया है. इसलिए, कुल 12 बाइट का इस्तेमाल किया गया है.
फ़ील्ड वैल्यू का साइज़
नीचे दी गई टेबल में, टाइप के हिसाब से फ़ील्ड वैल्यू का साइज़ दिखाया गया है.
| टाइप | साइज़ |
|---|---|
| सरणी | इसकी वैल्यू के साइज़ का योग |
| बूलियन | 1 बाइट |
| बाइनरी डेटा | सामान्य (शून्य से अलग) सबटाइप के लिए बाइट की लंबाई + 1 |
| तारीख | 8 बाइट |
| डबल-साइज़ बेड | 8 बाइट |
| Double128 | 16 बाइट |
| 32-बिट इंटिजर | 4 बाइट |
| 64-बिट पूर्णांक (long) | 8 बाइट |
| ऑब्जेक्ट | एम्बेड किए गए ऑब्जेक्ट में मौजूद हर फ़ील्ड के नाम और हर फ़ील्ड की वैल्यू के स्ट्रिंग साइज़ का योग |
| Min Key | 1 बाइट |
| Max Key | 1 बाइट |
| शून्य | 1 बाइट |
| रेगुलर एक्सप्रेशन | (पैटर्न की लंबाई + 1) + (विकल्पों की लंबाई + 1) |
| टाइमस्टैम्प | 8 बाइट |
| स्ट्रिंग | UTF-8 कोड में बदले गए बाइट की संख्या + 1 |
उदाहरण के लिए, done नाम के बूलियन फ़ील्ड के लिए, छह बाइट का इस्तेमाल किया जाएगा:
doneफ़ील्ड के नाम के लिए 5 बाइट- बूलियन वैल्यू के लिए 1 बाइट
दस्तावेज़ का साइज़
किसी दस्तावेज़ का साइज़ इन चीज़ों को मिलाकर बनता है:
- कलेक्शन के नाम का स्ट्रिंग साइज़
- हर फ़ील्ड के नाम (
_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 + फ़ील्ड की 32-बिट पूर्णांक वैल्यू के लिए 4 |
"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 _idफ़ील्ड की वैल्यू के लिए 11 बाइट- बूलियन फ़ील्ड की वैल्यू के लिए 1 बाइट
- 32-बिट इंटिजर फ़ील्ड वैल्यू के लिए 4 बाइट
- 48 अतिरिक्त बाइट
स्पार्स इंडेक्स के लिए, अगर किसी दस्तावेज़ में कोई भी फ़ील्ड शामिल नहीं है, तो कोई इंडेक्स एंट्री नहीं बनाई जाती. अगर किसी दस्तावेज़ में इंडेक्स किए गए फ़ील्ड में से कम से कम एक फ़ील्ड मौजूद है, तो इंडेक्स एंट्री बनाई जाती है. इसमें इंडेक्स किए गए फ़ील्ड मौजूद नहीं होते हैं और उन्हें NULL पर सेट किया जाता है.
स्ट्रीम इवेंट एंट्री का साइज़ बदलना
बदलाव वाले स्ट्रीम इवेंट का साइज़, इन सभी के कुल साइज़ के बराबर होता है:
- यह कलेक्शन के नाम (x2) के स्ट्रिंग साइज़ का योग होता है.
- किसी दस्तावेज़ के लिए, इवेंट डालने और अपडेट करने के लिए:
fullDocumentयाupdateDescriptionमें मौजूद हर फ़ील्ड के नाम के स्ट्रिंग साइज़ का योग (_idको छोड़कर).fullDocumentयाupdateDescriptionमें मौजूद हर फ़ील्ड वैल्यू के साइज़ का योग. (इसमें_idशामिल है).
- अगर यह सुविधा, एक से ज़्यादा दस्तावेज़ वाले लेन-देन पर लागू होती है, तो
lsidऔरtxnNumberके लिए 24 बाइट अतिरिक्त. - 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 _idफ़ील्ड की वैल्यू के लिए 11 बाइटdescriptionफ़ील्ड के नाम के लिए 12 बाइटdescriptionफ़ील्ड की वैल्यू के लिए 22 बाइट
टेक्स्ट खोजने के लिए इंडेक्स एंट्री का साइज़
किसी इंडेक्स में टेक्स्ट खोजने के लिए इंडेक्स की गई एंट्री का साइज़, इन चीज़ों के कुल साइज़ के बराबर होता है:
- कलेक्शन के नाम की स्ट्रिंग का साइज़
_idवैल्यू का साइज़- इंडेक्स किए गए फ़ील्ड की वैल्यू (x2) के बाइट का योग
- सामान्य मेटाडेटा के लिए 48 बाइट
tasks कलेक्शन में मौजूद _id my_task_id वाले दस्तावेज़ के लिए, इंसर्ट इवेंट का उदाहरण देखें:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
description पर टेक्स्ट सर्च इंडेक्स एंट्री का कुल साइज़ 105 बाइट है. यह इस आधार पर तय किया गया है:
- कलेक्शन के नाम के लिए 6 बाइट
tasks _idवैल्यू के लिए 11 बाइट- 44 बाइट,
descriptionफ़ील्ड के लिए 22 बाइट x2 के आधार पर - सामान्य मेटाडेटा के लिए 48 बाइट
जियोस्पेशल इंडेक्स एंट्री का साइज़
किसी इंडेक्स में, जियोस्पेशल इंडेक्स एंट्री का साइज़ इन चीज़ों के योग के बराबर होता है:
- कलेक्शन के नाम की स्ट्रिंग का साइज़
_idवैल्यू का साइज़- हर इंडेक्स किए गए जियो पॉइंट के लिए 128 बाइट
- सामान्य मेटाडेटा के लिए 48 बाइट
places कलेक्शन में मौजूद _id my_place वाले दस्तावेज़ के लिए, इंसर्ट इवेंट का उदाहरण देखें:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
location पर जियोस्पेशल इंडेक्स एंट्री का कुल साइज़ 192 बाइट है. यह इस आधार पर तय किया गया है:
- कलेक्शन के नाम के लिए 7 बाइट
places - दस्तावेज़ के आईडी के लिए 9 बाइट
locationफ़ील्ड के लिए 128 बाइट- सामान्य मेटाडेटा के लिए 48 बाइट
आगे क्या करना है
कीमत के बारे में जानें.