कीमत के उदाहरण

इस पेज पर, कुछ सामान्य स्थितियों में बिलिंग यूनिट की गिनती करने के तरीके के उदाहरण दिए गए हैं. ध्यान दें कि हर क्वेरी में प्रोसेस किया गया डेटा अलग-अलग हो सकता है. यह क्वेरी प्लान, डेटा का फ़ॉर्मैट, और उपलब्ध इंडेक्स जैसे फ़ैक्टर पर निर्भर करता है.

हमारा सुझाव है कि आप अपनी खास क्वेरी की लागत और परफ़ॉर्मेंस को बेहतर तरीके से समझने के लिए, क्वेरी की जानकारी देने वाली सुविधा का इस्तेमाल करें.

डेटा पढ़ने की कार्रवाइयां

डेटा पढ़ने की ज़्यादातर कार्रवाइयों में, किसी खास दस्तावेज़ को पॉइंट रीड करना या किसी आइडेंटिफ़ायर के आधार पर डेटा की रेंज को स्कैन करना शामिल होता है. डेटा पढ़ने की कार्रवाइयों में, रीड यूनिट खर्च होती हैं. यहां दिए गए उदाहरण देखें.

पूरे टेक्स्ट में खोज की क्वेरी के लिए शुल्क, टेक्स्ट इंडेक्स पर खोज करने की लागत और दस्तावेज़ों को वापस पाने की लागत के हिसाब से अलग-अलग होते हैं. टेक्स्ट इंडेक्स पर खोज करने की लागत, क्वेरी की जटिलता और नतीजे ढूंढने के लिए इंडेक्स में स्कैन किए गए डेटा की मात्रा के हिसाब से तय की जाती है. इस लागत पर असर डालने वाले फ़ैक्टर में, खोज के लिए इस्तेमाल किए गए शब्दों की संख्या और टाइप (जैसे, शब्द, वाक्यांश), काम के नतीजों के लिए स्कोरिंग लागू की गई है या नहीं, और इंडेक्स की उन एंट्री की संख्या शामिल है जिनकी जांच करनी है. काम के दस्तावेज़ों को वापस पाने की लागत, खोज का चरण पूरा होने के बाद फ़ेच किए गए दस्तावेज़ों की संख्या और साइज़ के हिसाब से तय की जाती है.

यहां दी गई टेबल में, नर्सरी के लिए ई-कॉमर्स प्रॉडक्ट कैटलॉग के लिए, पूरे टेक्स्ट में खोज की क्वेरी चलाने से जुड़े शुल्क की जानकारी दी गई है. इस उदाहरण में, यह माना गया है कि किसी कलेक्शन में प्रॉडक्ट लिस्टिंग के 2,00,000 दस्तावेज़ हैं. हर प्रॉडक्ट लिस्टिंग वाला दस्तावेज़ 2 केआईबी का है. साथ ही, टेक्स्ट में खोज के लिए इंडेक्स का साइज़ करीब 100 एमबी है.

क्वेरी कोड का उदाहरण हर क्वेरी के लिए खर्च होने वाली रीड यूनिट का अनुमान लागत का अनुमान (इलाका: us-central1, अमेरिकी डॉलर में)
"सूखे पानी" वाले स्टैक फ़्लैट ट्रे प्रॉडक्ट को खोजें. इससे तीन दस्तावेज़ वापस मिलते हैं.
db.products.find(
  {$text: {$search: '"dry water" stack flat'}}
);

कुल 10 रीड यूनिट

यह लागत, पूरे टेक्स्ट में खोज के लिए सात यूनिट और वापस लाए गए दस्तावेज़ों के लिए तीन अतिरिक्त यूनिट के हिसाब से तय की गई है.

10 लाख क्वेरी के लिए 0.50 डॉलर
घर के अंदर उगाए जाने वाले सभी सिट्रस ट्री को खोजें. इससे 36 दस्तावेज़ वापस मिलते हैं.
db.products.find(
  {$text: {$search: '"indoor" "citrus" "tree"'}}
);

कुल 42 रीड यूनिट

यह लागत, पूरे टेक्स्ट में खोज के लिए छह यूनिट और वापस लाए गए दस्तावेज़ों के लिए 36 अतिरिक्त यूनिट के हिसाब से तय की गई है.

10 लाख क्वेरी के लिए 2.10 डॉलर
बालकनी में लगाए जाने वाले प्लांटर खोजें. इसमें प्रॉडक्ट के कई मैच मिलते हैं. नतीजों को काम के होने के हिसाब से क्रम में लगाएं. साथ ही, खोज के पहले 50 नतीजों तक सीमित करें.
db.products.find(
  {$text: {$search: 'balcony planter'}}
).sort({score: {$meta: "textScore"}}).limit(50);

कुल 75 रीड यूनिट

यह लागत, पूरे टेक्स्ट में खोज के लिए 25 यूनिट और वापस लाए गए दस्तावेज़ों के लिए 50 अतिरिक्त यूनिट के हिसाब से तय की गई है.

10 लाख क्वेरी के लिए 3.75 डॉलर

इन उदाहरणों से पता चलता है कि अलग-अलग क्वेरी पैटर्न से लागत पर क्या असर पड़ता है:

  • "सूखे पानी" वाली क्वेरी में एक वाक्यांश ("dry water") और अतिरिक्त शब्द शामिल हैं. वाक्यांशों की खोज ज़्यादा जटिल होती है, क्योंकि क्वेरी इंजन को टोकन की नज़दीकी और क्रम की जांच करनी होती है. इससे खोज के चरण के लिए सात रीड यूनिट खर्च होती हैं. बहुत कम दस्तावेज़ मैच होने की वजह से, दस्तावेज़ वापस पाने की लागत कम होती है.
  • "घर के अंदर" "सिट्रस" "ट्री" वाली क्वेरी में तीन अलग-अलग शब्द खोजे जाते हैं. वाक्यांश की खोज के मुकाबले, हर शब्द के लिए यह थोड़ी कम जटिल होती है. हालांकि, इसमें अब भी कई टोकन देखने की ज़रूरत होती है. इसमें "सूखे पानी" वाले उदाहरण के मुकाबले, खोज इंडेक्स स्कैन करने की लागत थोड़ी कम होती है. इसमें छह रीड यूनिट खर्च होती हैं. हालांकि, इसमें 36 दस्तावेज़ वापस मिलते हैं. इससे कुल लागत बढ़ जाती है.
  • बालकनी में लगाए जाने वाले प्लांटर की क्वेरी में, पूरे टेक्स्ट में खोज की लागत सबसे ज़्यादा होती है. इसमें 25 यूनिट खर्च होती हैं. इसकी मुख्य वजह यह है कि इसमें नतीजों को काम के होने के हिसाब से क्रम में लगाने का अनुरोध किया जाता है (.sort({score: {$meta: "textScore"}}) ), जो कई दस्तावेज़ों से मैच होते हैं. सबसे ज़्यादा काम के 50 नतीजे तय करने के लिए, क्वेरी इंजन को "बालकनी" या "प्लांटर" के लिए सभी संभावित मैच ढूंढने होंगे. इसके बाद, हर मैच के लिए काम के होने का स्कोर कैलकुलेट करना होगा और फिर उन्हें क्रम में लगाना होगा. इंडेक्स में मौजूद बड़ी संख्या में संभावित नतीजों के लिए, स्कोरिंग और क्रम में लगाने की प्रोसेस में ज़्यादा कंप्यूटिंग की ज़रूरत होती है. भले ही, आखिर में सिर्फ़ 50 दस्तावेज़ वापस लाए जाएं. शब्दों के ब्रॉड मैच के साथ-साथ, काम के होने के हिसाब से स्कोरिंग की वजह से, खोज का चरण ज़्यादा महंगा हो जाता है.

जियोस्पेशल क्वेरी

जियोस्पेशल क्वेरी के लिए शुल्क, क्वेरी की जटिलता और इस्तेमाल की गई खास शर्तों और क्रम के हिसाब से तय किए जाते हैं. इसके अलावा, काम के जियोस्पेशल इंडेक्स में मौजूद सभी डेटा को स्कैन करने के लिए ज़रूरी संसाधनों के हिसाब से भी शुल्क तय किए जाते हैं.

यहां दी गई टेबल में, मैप ऐप्लिकेशन के लिए जियोस्पेशल क्वेरी चलाने से जुड़े शुल्क की जानकारी दी गई है. इस उदाहरण में,यह माना गया है कि कलेक्शन में लोकप्रिय जगहों के 10,00, 000 दस्तावेज़ हैं. हर लोकप्रिय जगह का दस्तावेज़ 1 केआईबी का है. साथ ही, जियोस्पेशल इंडेक्स का साइज़ करीब 60 एमबी है.

क्वेरी कोड का उदाहरण हर क्वेरी के लिए खर्च होने वाली रीड यूनिट का अनुमान लागत का अनुमान (इलाका: us-central1, अमेरिकी डॉलर में)
10 किलोमीटर के दायरे में मौजूद सभी लोकप्रिय जगहों को ढूंढें. इससे 10 मैच मिलते हैं.
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 10000
    }}})

कुल 16 रीड यूनिट.

यह लागत, जियोस्पेशल क्वेरी के लिए छह रीड यूनिट और वापस लाए गए दस्तावेज़ों के लिए 10 अतिरिक्त यूनिट के हिसाब से तय की गई है.

10 लाख क्वेरी के लिए 0.80 डॉलर
100 किलोमीटर के दायरे में मौजूद सभी लोकप्रिय जगहों को ढूंढें. साथ ही, 1,000 मैच में से सबसे नज़दीक की 10 लोकप्रिय जगहों को वापस लाएं
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 100000
    }}}).limit(10)

कुल 19 रीड यूनिट.

यह लागत, जियोस्पेशल क्वेरी के लिए नौ रीड यूनिट और वापस लाए गए दस्तावेज़ों के लिए 10 अतिरिक्त यूनिट के हिसाब से तय की गई है.

10 लाख क्वेरी के लिए 0.95 डॉलर

इन उदाहरणों से पता चलता है कि अलग-अलग क्वेरी पैटर्न से लागत पर क्या असर पड़ता है:

  • 10 किलोमीटर के दायरे वाली क्वेरी: यह क्वेरी, छोटे भौगोलिक इलाके को स्कैन करती है. इस 10 किलोमीटर के दायरे में सिर्फ़ 10 मैच मिलने की वजह से, क्वेरी इंजन को इन जगहों की पहचान करने और दूरी के हिसाब से क्रम में लगाने के लिए कम काम करना पड़ता है (क्योंकि $near ऐसा ही करता है). इससे इंडेक्स स्कैन करने की लागत कम होती है. इसमें छह रीड यूनिट खर्च होती हैं.
  • 100 किलोमीटर के दायरे वाली क्वेरी: यह क्वेरी, बड़े इलाके को कवर करती है. क्वेरी को 100 किलोमीटर के दायरे में 1,000 संभावित मैच मिलते हैं. सबसे नज़दीक की 10 लोकप्रिय जगहों के अनुरोध को पूरा करने के लिए, क्वेरी इंजन को इंडेक्स में मौजूद संभावित नतीजों (1,000 जगहों तक) की दूरी कैलकुलेट करनी होती है और उन्हें क्रम में लगाना होता है. ज़्यादा जगहों को क्रम में लगाने और उनकी जांच करने के लिए, अतिरिक्त कंप्यूटिंग की ज़रूरत होती है. इसलिए, जियोस्पेशल क्वेरी की लागत ज़्यादा होती है. इसमें नौ रीड यूनिट खर्च होती हैं. जबकि 10 किलोमीटर वाली क्वेरी में भी सिर्फ़ 10 दस्तावेज़ वापस मिलते हैं.

पॉइंट रीड

पॉइंट रीड के लिए बिलिंग का उदाहरण:

  • 1 केआईबी के एक दस्तावेज़ को पॉइंट रीड करना. खर्च होने वाली यूनिट: एक रीड यूनिट
  • 4 केआईबी के एक दस्तावेज़ को पॉइंट रीड करना. खर्च होने वाली यूनिट: एक रीड यूनिट
  • 1 एमबी के एक दस्तावेज़ को पॉइंट रीड करना. खर्च होने वाली यूनिट: 256 रीड यूनिट
  • 100 दस्तावेज़ों को पॉइंट रीड करना. हर दस्तावेज़ का साइज़ 1 केआईबी है. खर्च होने वाली यूनिट: 100 रीड यूनिट

स्कैन किया जा रहा है

यहां दिए गए उदाहरणों में, दस्तावेज़ों या इंडेक्स एंट्री को स्कैन करने की स्थितियों के बारे में बताया गया है.

दस्तावेज़ स्कैन करना

  • क्वेरी, जिसमें 100 दस्तावेज़ स्कैन किए जाते हैं. हर दस्तावेज़ का साइज़ 1 केआईबी है. खर्च होने वाली यूनिट: 25 रीड यूनिट

इंडेक्स स्कैन करना

बाइट के हिसाब से स्कैन करने की लागत एक जैसी होती है. भले ही, दस्तावेज़ या इंडेक्स स्कैन किया जा रहा हो. हालांकि, इंडेक्स एंट्री का साइज़ अक्सर छोटा होता है. इसलिए, इंडेक्स एंट्री को स्कैन करना, डेटा स्कैन करने का ज़्यादा किफ़ायती तरीका हो सकता है.

  • क्वेरी, जिसमें 100 इंडेक्स एंट्री स्कैन की जाती हैं. हर इंडेक्स एंट्री का साइज़ 1 केआईबी है. खर्च होने वाली यूनिट: 25 रीड यूनिट.
  • क्वेरी, जिसमें 100 इंडेक्स एंट्री स्कैन की जाती हैं. हर इंडेक्स एंट्री का साइज़ 128 बाइट है. खर्च होने वाली यूनिट: चार रीड यूनिट.

दस्तावेज़ या इंडेक्स एंट्री का कम से कम साइज़

कुछ स्थितियों में, क्वेरी का जवाब देने के लिए, दस्तावेज़ या इंडेक्स एंट्री का कॉन्टेंट पढ़ना ज़रूरी नहीं होता. इसमें, कलेक्शन में मौजूद दस्तावेज़ों की कुल संख्या की गिनती करने जैसी सामान्य क्वेरी शामिल हैं. इन स्थितियों में, स्कैन किए गए हर आइटम के लिए कम से कम 32 बाइट की लागत लागू होती है.

  • किसी कलेक्शन में मौजूद दस्तावेज़ों की संख्या की गिनती करना. क्वेरी, कलेक्शन में मौजूद 1,000 आइटम को स्कैन करती है. खर्च होने वाली यूनिट: आठ रीड यूनिट.

स्कैन करने और पॉइंट रीड करने का कॉम्बिनेशन

कई क्वेरी, किसी कार्रवाई को पूरा करने के लिए, स्कैन करने और पॉइंट रीड करने का कॉम्बिनेशन इस्तेमाल करती हैं.

  • क्वेरी, जिसमें 128 इंडेक्स एंट्री स्कैन की जाती हैं. हर इंडेक्स एंट्री का साइज़ 256 बाइट है. साथ ही, 128 दस्तावेज़ों को पॉइंट रीड किया जाता है. हर दस्तावेज़ का साइज़ 4 केआईबी है. खर्च होने वाली यूनिट: 136 रीड यूनिट. इनमें ये शामिल हैं:
    • पॉइंट रीड के लिए 128 रीड यूनिट
    • इंडेक्स स्कैन के लिए आठ रीड यूनिट

क्वेरी की जानकारी देने वाली सुविधा

क्वेरी की जानकारी देने वाली सुविधा से आपको यह समझने में मदद मिलती है कि डेटाबेस आपकी क्वेरी को कैसे पूरा करता है. दी गई जानकारी से, अपनी क्वेरी को ऑप्टिमाइज़ करने में मदद मिल सकती है.

क्वेरी की जानकारी देने वाली सुविधा का इस्तेमाल करने पर, ये लागतें लागू होती हैं:

  • क्वेरी की जानकारी देने वाली सुविधा, जो क्वेरी को पूरा करती है: क्वेरी की लागत लागू होती है.
  • क्वेरी की जानकारी देने वाली सुविधा, जिसमें सिर्फ़ प्लान का विकल्प इस्तेमाल किया जाता है. खर्च होने वाली यूनिट: एक रीड यूनिट (क्वेरी की कम से कम लागत)

डेटा सेव करने की कार्रवाइयां

डेटा सेव करने की कार्रवाइयों (बनाना, अपडेट करना, और मिटाना) के लिए शुल्क, कार्रवाई के दौरान बनाए, बदले, या मिटाए जा रहे दस्तावेज़ों और इंडेक्स के साइज़ के हिसाब से तय किए जाते हैं. डेटा सेव करने की कार्रवाइयों में, राइट यूनिट खर्च होती हैं. राइट यूनिट की गिनती, 1 केआईबी के हिसाब से की जाती है.

डेटा सेव करने की सामान्य कार्रवाइयों, जैसे कि दस्तावेज़ आईडी के हिसाब से अपडेट करने पर, सिर्फ़ डेटा सेव करने की लागत लगती है. डेटा सेव करने की उन कार्रवाइयों के लिए, जिनमें कार्रवाई को पूरा करने के लिए क्वेरी करने की ज़रूरत होती है, क्वेरी से जुड़ी रीड यूनिट की लागत भी लगेगी.

यहां दिए गए उदाहरण देखें.

बनाना

  • बिना इंडेक्स वाला 10 केआईबी का नया दस्तावेज़ बनाना. खर्च होने वाली यूनिट: 10 राइट यूनिट
  • कलेक्शन में 1 केआईबी का दस्तावेज़ बनाना. इसमें 256 बाइट की एक इंडेक्स एंट्री है. खर्च होने वाली यूनिट: दो राइट यूनिट

अपडेट

  • दस्तावेज़ आईडी के हिसाब से 10 केआईबी का दस्तावेज़ ढूंढना और उसे अपडेट करना. कलेक्शन में कोई इंडेक्स नहीं है. खर्च होने वाली यूनिट: 10 राइट यूनिट
  • दस्तावेज़ आईडी के हिसाब से 1 केआईबी का दस्तावेज़ ढूंढना और 256 बाइट की एक इंडेक्स एंट्री वाले एक फ़ील्ड को अपडेट करना. खर्च होने वाली यूनिट: तीन राइट यूनिट. ध्यान दें: इस स्थिति में, इंडेक्स एंट्री को अपडेट करने पर दो राइट यूनिट खर्च होती हैं. एक यूनिट, इंडेक्स एंट्री को मिटाने के लिए और दूसरी यूनिट, इंडेक्स एंट्री को फिर से बनाने के लिए.
  • दस्तावेज़ आईडी के हिसाब से 1 केआईबी का दस्तावेज़ ढूंढना और उसे अपडेट न करना (कोई बदलाव नहीं करना). खर्च होने वाली यूनिट: एक राइट यूनिट (डेटा सेव करने की कम से कम लागत)
  • कलेक्शन में मौजूद 1 केआईबी के सभी दस्तावेज़ों की क्वेरी करना. इसमें 1,000 दस्तावेज़ स्कैन किए जाते हैं. साथ ही, कलेक्शन में बिना इंडेक्स वाला 256 बाइट का नया फ़ील्ड जोड़ना: 1,000 रीड यूनिट और 1,000 राइट यूनिट.

मिटाए

  • 1 केआईबी का दस्तावेज़ मिटाना. कलेक्शन में इसका एक इंडेक्स है. खर्च होने वाली यूनिट: दो राइट यूनिट
  • 1 केआईबी का दस्तावेज़ मिटाना. कलेक्शन में इसका कोई इंडेक्स नहीं है. खर्च होने वाली यूनिट: एक राइट यूनिट

इंडेक्स बनाना

इंडेक्स बनाने के लिए शुल्क, बनाने की कार्रवाई के दौरान बनाई या बदली गई इंडेक्स एंट्री के हिसाब से तय किए जाते हैं. इंडेक्स की परिभाषा जोड़ने या हटाने पर, ये लागतें लगती हैं. इंडेक्स एंट्री के लिए बिलिंग, डेटा सेव करने की लागत के हिसाब से की जाती है. इसमें 1 केआईबी के लिए एक राइट यूनिट खर्च होती है.

  • 500 दस्तावेज़ों वाले कलेक्शन के लिए नया इंडेक्स बनाना. बनाई गई इंडेक्स एंट्री का साइज़ 1 केआईबी है. खर्च होने वाली यूनिट: 500 राइट यूनिट.
  • 500 दस्तावेज़ों वाले कलेक्शन के लिए मौजूदा इंडेक्स मिटाना. मिटाई गई इंडेक्स एंट्री का साइज़ 1 केआईबी है. खर्च होने वाली यूनिट: 500 राइट यूनिट.