इस पेज पर, Cloud Firestore में मौजूद दस्तावेज़ों, फ़ील्ड, और इंडेक्स एंट्री के स्टोरेज साइज़ के बारे में बताया गया है.
इस स्टोरेज के शुल्क के बारे में जानने के लिए, कीमत पेज पर जाएं.
स्ट्रिंग का साइज़
स्ट्रिंग के साइज़ का हिसाब, UTF-8 कोड में बदले गए बाइट की संख्या + 1 के तौर पर लगाया जाता है.
इन्हें स्ट्रिंग के तौर पर सेव किया जाता है:
- कलेक्शन का नाम
- फ़ील्ड के नाम
- स्ट्रिंग फ़ील्ड की वैल्यू (इनमें
_idशामिल है)
उदाहरण के लिए:
- कलेक्शन के नाम
tasksमें 5 बाइट + 1 बाइट का इस्तेमाल होता है. इस तरह, कुल 6 बाइट का इस्तेमाल होता है. - फ़ील्ड का नाम
description, 11 बाइट + 1 बाइट का इस्तेमाल करता है. कुल मिलाकर, 12 बाइट का इस्तेमाल होता है.
फ़ील्ड वैल्यू का साइज़
नीचे दी गई टेबल में, टाइप के हिसाब से फ़ील्ड वैल्यू का साइज़ दिखाया गया है.
| टाइप | साइज़ |
|---|---|
| सरणी | इसकी वैल्यू के साइज़ का कुल योग |
| बूलियन | 1 बाइट |
| बाइनरी डेटा | नॉन-जेनेरिक (नॉन-0) सब-टाइप के लिए, बाइट की लंबाई + 1 |
| तारीख | 8 बाइट |
| डबल-साइज़ बेड | 8 बाइट |
| Double128 | 16 बाइट |
| 32-बिट पूर्णांक | 4 बाइट |
| 64-बिट इंटिजर (लॉन्ग) | 8 बाइट |
| ऑब्जेक्ट | एम्बेड किए गए ऑब्जेक्ट में, हर फ़ील्ड के नाम के स्ट्रिंग साइज़ और हर फ़ील्ड की वैल्यू के साइज़ का योग |
| Min Key | 1 बाइट |
| मैक्स कुंजी | 1 बाइट |
| शून्य | 1 बाइट |
| रेगुलर एक्सप्रेशन | (पैटर्न की लंबाई + 1) + (विकल्पों की लंबाई + 1) |
| टाइमस्टैम्प | 8 बाइट |
| स्ट्रिंग | UTF-8 कोड में बदले गए बाइट की संख्या + 1 |
उदाहरण के लिए, done नाम का बूलियन फ़ील्ड, छह बाइट का इस्तेमाल करेगा:
doneफ़ील्ड के नाम के लिए पांच बाइट- बूलियन वैल्यू के लिए 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 _idफ़ील्ड की वैल्यू के लिए 11 बाइट- बूलियन फ़ील्ड की वैल्यू के लिए एक बाइट
- 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 बाइट
- कलेक्शन के नाम
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 _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 बाइट है. यह साइज़ इनके आधार पर तय होता है:
- कलेक्शन के नाम के लिए सात बाइट
places - दस्तावेज़ आईडी के लिए नौ बाइट
locationफ़ील्ड के लिए 128 बाइट- सामान्य मेटाडेटा के लिए 48 अतिरिक्त बाइट
आगे क्या करना है
कीमत के बारे में जानें.