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