أمثلة على الأسعار

تتضمّن هذه الصفحة أمثلة على كيفية احتساب وحدات الفوترة في بعض السيناريوهات الأكثر شيوعًا. يُرجى العِلم أنّ كل طلب بحث قد يختلف في البيانات التي تتم معالجتها استنادًا إلى عوامل مثل خطة طلب البحث وشكل البيانات والفهارس المتاحة.

ننصحك باستخدام ميزة شرح الاستعلام لفهم تكلفة وأداء استعلاماتك المحدّدة بشكل أفضل.

عمليات القراءة

تتضمّن معظم عمليات القراءة إما إجراء قراءة نقطية لمستند معيّن أو فحص نطاق من البيانات استنادًا إلى معرّف. تستهلك عمليات القراءة وحدات القراءة. اطّلِع على الأمثلة التالية.

يتم التمييز بين تكلفة تنفيذ طلب بحث في فهرس نصي وتكلفة استرداد المستندات عند احتساب رسوم طلبات البحث في النص الكامل. يتم تحديد تكلفة إجراء بحث في فهرس نصي حسب مدى تعقيد طلب البحث وكمية البيانات التي يتم فحصها في الفهرس للعثور على النتائج. تشمل العوامل التي تؤثّر في هذه التكلفة عدد عبارات البحث وطبيعتها (مثل العبارات والكلمات) وما إذا تم تطبيق نظام تسجيل مدى الصلة وعدد إدخالات الفهرس التي يجب فحصها. تستند تكلفة استرداد المستندات ذات الصلة إلى عدد المستندات التي تم جلبها وحجمها بعد اكتمال مرحلة البحث.

يوضّح الجدول التالي التكاليف المرتبطة بتنفيذ طلبات بحث بنص كامل في فهرس منتجات للتجارة الإلكترونية خاص بمشتل نباتات. يفترض هذا المثال مجموعة من 200,000 بطاقة بيانات منتجات في مجموعة، مع حجم كل مستند من بطاقات بيانات المنتجات يبلغ 2 كيلوبايت، وحجم فهرس البحث النصي المقابل يبلغ 100 ميغابايت تقريبًا.

طلب البحث مثال على الرمز البرمجي وحدات القراءة المقدَّرة المستهلَكة لكل طلب بحث التكاليف المقدَّرة (المنطقة: us-central1 بالدولار الأمريكي)
البحث عن منتج نادر من نوع "صينية مسطحة لتجفيف المياه"، ما يؤدي إلى استرداد 3 مستندات
db.products.find(
  {$text: {$search: '"dry water" stack flat'}}
);

10 وحدات قراءة إجمالاً

استنادًا إلى 7 وحدات للبحث عن النص الكامل و3 وحدات إضافية للمستندات التي تم إرجاعها

‫0.50 دولار أمريكي لكل مليون طلب بحث
ابحث عن جميع أشجار الحمضيات الداخلية، ما يؤدي إلى استرداد 36 مستندًا.
db.products.find(
  {$text: {$search: '"indoor" "citrus" "tree"'}}
);

إجمالي 42 وحدة قراءة

استنادًا إلى 6 وحدات للبحث عن النص الكامل و36 وحدة إضافية للمستندات التي تم عرضها

‫2.10 دولار أمريكي لكل مليون طلب بحث
ابحث عن أُصص نباتات للشرفات حيث تظهر الكثير من المنتجات المطابقة. ترتيب النتائج حسب مدى صلتها بموضوع البحث، والاقتصار على أهم 50 نتيجة بحث
db.products.find(
  {$text: {$search: 'balcony planter'}}
).sort({score: {$meta: "textScore"}}).limit(50);

‫75 وحدة قراءة إجمالية

استنادًا إلى 25 وحدة للبحث عن النص الكامل و50 وحدة إضافية للمستندات التي تم إرجاعها

‫3.75 دولار أمريكي لكل مليون طلب بحث

توضّح الأمثلة التالية كيف تؤثر أنماط الاستعلامات المختلفة في التكاليف:

  • يتضمّن الاستعلام"ماء جاف" عبارة ("dry water") وعبارات إضافية. تكون عمليات البحث عن عبارات أكثر تعقيدًا لأنّ محرك طلب البحث يحتاج إلى التحقّق من قرب الرموز المميزة وترتيبها، ما يساهم في استخدام 7 وحدات قراءة لمرحلة البحث. وبما أنّ عدد المستندات المطابقة قليل جدًا، تكون تكلفة استرداد المستندات منخفضة.
  • يبحث طلب البحث "شجرة" "حمضيات" "داخلية" عن ثلاث عبارات منفصلة. على الرغم من أنّ البحث عن كلمة واحدة أقل تعقيدًا من البحث عن عبارة، إلا أنّه لا يزال يتطلّب البحث عن رموز مميّزة متعددة. تبلغ تكلفة فحص فهرس البحث 6 وحدات قراءة، وهي أقل قليلاً من مثال "الماء الجاف"، ولكن يتم عرض 36 مستندًا، ما يزيد من التكلفة الإجمالية.
  • تتضمّن عبارة البحث "أصيص شرفة" أعلى تكلفة بحث بنص كامل تبلغ 25 وحدة بفارق كبير. ويرجع ذلك بشكل أساسي إلى أنّه يطلب ترتيب النتائج حسب مدى صلتها بموضوع البحث (.sort({score: {$meta: "textScore"}}) ) استنادًا إلى عبارات تطابق العديد من المستندات. لتحديد أفضل 50 نتيجة ذات صلة، يجب أن يعثر محرّك طلبات البحث على جميع النتائج المحتملة المطابقة لكلمة "شرفة" أو "زارعة"، ثم يحسب درجة الصلة لكل نتيجة، ثم يرتبها. تتطلّب عملية التسجيل والترتيب هذه عددًا كبيرًا من المرشحين ضمن الفهرس، وهي عملية مكثفة من الناحية الحسابية، على الرغم من أنّه يتم استرداد 50 مستندًا فقط في النهاية. إنّ اتساع نطاق العبارات مع تكلفة حساب مدى الصلة يجعل مرحلة البحث أكثر تكلفة.

طلبات البحث الجغرافية المكانية

يتم تحديد رسوم طلبات البحث الجغرافية المكانية حسب مدى تعقيد طلب البحث والشروط والفرز المحدّدين المستخدَمين، بالإضافة إلى الموارد المطلوبة لفحص جميع البيانات في الفهرس الجغرافي المكاني ذي الصلة.

يوضّح الجدول التالي الرسوم المرتبطة بتنفيذ طلبات البحث الجغرافية المكانية لتطبيق خرائط. يفترض هذا المثال مجموعة من 1,000,000 مستند يمثّل نقاط اهتمام، ويبلغ حجم كل مستند من مستندات نقاط الاهتمام 1 كيلوبايت، ويبلغ حجم الفهرس الجغرافي المكاني المقابل 60 ميغابايت تقريبًا.

طلب البحث مثال على الرمز البرمجي وحدات القراءة المقدَّرة المستهلَكة لكل طلب بحث التكاليف المقدَّرة (المنطقة: us-central1 بالدولار الأمريكي)
ابحث عن جميع نقاط الاهتمام ضمن مسافة 10 كيلومترات كحد أقصى، مع عرض 10 نتائج مطابقة.
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 10000
    }}})

إجمالي 16 وحدة قراءة

استنادًا إلى 6 وحدات قراءة لطلب البحث الجغرافي المكاني و10 وحدات إضافية للمستندات التي تم إرجاعها

‫0.80 دولار أمريكي لكل مليون طلب بحث
ابحث عن جميع نقاط الاهتمام التي لا تزيد مسافتها عن 100 كيلومتر، واعرض أفضل 10 نقاط اهتمام من بين 1,000 نتيجة مطابقة
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 100000
    }}}).limit(10)

‫19 وحدة قراءة إجمالية

استنادًا إلى 9 وحدات قراءة لطلب البحث الجغرافي المكاني و10 وحدات إضافية للمستندات التي تم إرجاعها

‫0.95 دولار أمريكي لكل مليون طلب بحث

توضّح الأمثلة التالية كيف تؤثر أنماط الاستعلامات المختلفة في التكاليف:

  • طلب البحث بنطاق جغرافي محدّد يبلغ 10 كيلومترات: يفحص طلب البحث هذا منطقة جغرافية أصغر. بما أنّه يعثر على 10 نتائج مطابقة فقط ضمن نطاق 10 كيلومترات، لا يحتاج محرّك البحث إلى بذل مجهود كبير لتحديد هذه النقاط وترتيبها حسب المسافة (كما تفعل $near ضمنيًا). ويؤدي ذلك إلى خفض تكلفة فحص الفهرس إلى 6 وحدات قراءة.
  • طلب البحث بنطاق جغرافي يبلغ 100 كيلومتر: يغطي طلب البحث هذا مساحة أكبر بكثير. يعثر طلب البحث على 1,000 نتيجة محتملة ضمن نطاق 100 كيلومتر. لتلبية طلب الحصول على أقرب 10 نقاط، يحتاج محرك البحث إلى احتساب المسافات وترتيب مجموعة أكبر بكثير من النتائج المحتملة (تصل إلى 1,000 نقطة) ضمن الفهرس. هذا العمل الحسابي الإضافي المتمثل في البحث عن المزيد من النقاط وترتيبها هو السبب في ارتفاع تكلفة طلب البحث الجغرافي المكاني إلى 9 وحدات قراءة، مقارنةً بطلب البحث الذي يبلغ نطاقه 10 كيلومترات، على الرغم من أنّه يعرض 10 مستندات فقط أيضًا.

قراءات ذات مستويات مختلفة

في ما يلي مثال على الفوترة المتعلقة بالنقاط:

  • قراءة نقطية لمستند واحد بحجم 1 كيلوبايت الاستهلاك: وحدة قراءة واحدة
  • قراءة نقطة لمستند واحد بحجم 4 كيلوبايت الاستهلاك: وحدة قراءة واحدة
  • قراءة نقطة لمستند واحد بحجم 1 ميغابايت تستهلك: 256 وحدة قراءة
  • قراءة 100 مستند، حجم كل منها 1 كيلوبايت الاستهلاك: 100 وحدة قراءة

المسح

تتضمّن الأمثلة التالية سيناريوهات تفحص المستندات أو إدخالات الفهرس.

مسح المستندات ضوئيًا

  • طلب بحث يفحص 100 مستند، حجم كل منها 1 كيلوبايت الاستهلاك: 25 وحدة قراءة

فهرسة عمليات المسح

تكون تكلفة الفحص، من حيث عدد وحدات البايت، هي نفسها بغض النظر عمّا إذا كان يتم فحص مستند أو فهرس. ومع ذلك، تكون إدخالات الفهرس غالبًا أصغر حجمًا. نتيجةً لذلك، يمكن أن توفّر في كثير من الأحيان طريقة أكثر فعالية من حيث التكلفة لفحص البيانات.

  • طلب بحث يفحص 100 إدخال في الفهرس، كلّ منها بحجم 1 كيلوبايت. تستهلك: 25 وحدة قراءة.
  • طلب بحث يفحص 100 إدخال فهرس، كلّ منها 128 بايت. تستهلك: 4 وحدات قراءة.

الحد الأدنى لحجم المستند أو إدخال الفهرس

في بعض الحالات، قد لا يكون من الضروري قراءة محتوى مستند أو إدخال فهرس لتلبية طلب بحث. ويشمل ذلك طلبات البحث البسيطة الخاصة بالعد، مثل حساب إجمالي عدد المستندات في مجموعة. في هذه الحالات، يتم تطبيق حد أدنى للتكلفة يبلغ 32 بايت لكل عنصر يتم فحصه.

  • تحسب هذه الدالة عدد المستندات في مجموعة. يفحص طلب البحث 1,000 عنصر في المجموعة. تستهلك: 8 وحدات قراءة.

مزيج من عمليات المسح وقراءات النقاط

تنفّذ العديد من طلبات البحث مزيجًا من عمليات المسح والقراءة النقطية لتلبية عملية معيّنة.

  • طلب بحث يبحث في 128 إدخال فهرس، كل منها بحجم 256 بايت، وينفّذ عملية قراءة نقطية لـ 128 مستندًا، كل منها بحجم 4 كيلوبايت. يستهلك: 136 وحدة قراءة، تتألف من:
    • ‫128 وحدة قراءة لعمليات القراءة النقطية
    • 8 وحدات قراءة لعمليات فحص الفهرس

شرح الطلب

تساعدك ميزة شرح طلب البحث في فهم طريقة تنفيذ قاعدة البيانات لطلبات البحث. يمكن أن تساعدك التفاصيل المقدَّمة في تحسين طلبات البحث.

تنطبق التكاليف التالية عند استخدام Query Explain:

  • Query Explain الذي ينفّذ الطلب: تنطبق تكلفة الطلب.
  • طلب شرح الاستعلام باستخدام خيار الخطة فقط تستهلك: وحدة قراءة واحدة (الحد الأدنى لتكلفة طلب البحث)

عمليات الكتابة

يتم تحصيل رسوم مقابل عمليات الكتابة (الإنشاء والتعديل والحذف) استنادًا إلى حجم المستندات والفهارس التي يتم إنشاؤها أو تعديلها أو حذفها أثناء العملية. تستهلك عمليات الكتابة وحدات الكتابة. يتم احتساب وحدات الكتابة على شكل شرائح بحجم 1 KiB.

لا تتكبّد عمليات الكتابة البسيطة، مثل التعديل حسب معرّف المستند، سوى تكلفة عمليات الكتابة. ستؤدي عمليات الكتابة التي تتطلب تنفيذ استعلام لتلبية متطلبات العملية إلى تكبُّد تكاليف القراءة المرتبطة بالاستعلام.

اطّلِع على الأمثلة التالية.

إنشاء

  • أنشئ مستندًا جديدًا بحجم 10 كيلوبايت بدون فهارس. الاستهلاك: 10 وحدات كتابة
  • أنشئ مستندًا بحجم 1 كيلوبايت يتضمّن إدخال فهرس واحدًا بحجم 256 بايت في المجموعة. تستهلك: وحدتَي كتابة

التحديثات

  • ابحث عن مستند بحجم 10 كيلوبايت باستخدام معرّف المستند وعدِّله بدون أي فهارس في المجموعة. الاستهلاك: 10 وحدات كتابة
  • ابحث عن مستند بحجم 1 كيلوبايت حسب معرّف المستند وعدِّل حقلًا واحدًا باستخدام إدخال فهرس واحد بحجم 256 بايت. الاستهلاك: 3 وحدات كتابة ملاحظة: يؤدي تعديل إدخال فهرس في هذه الحالة إلى استهلاك وحدتَي كتابة، واحدة للحذف وأخرى لإعادة إنشاء إدخال الفهرس.
  • ابحث عن مستند بحجم 1 كيلوبايت باستخدام معرّف المستند بدون تعديل أي شيء (بدون تغييرات). الاستهلاك: وحدة كتابة واحدة (الحد الأدنى لتكاليف الكتابة)
  • طلب بحث عن جميع المستندات التي تبلغ سعتها 1 كيلوبايت في مجموعة، ما يؤدي إلى فحص 1, 000 مستند، وإدراج حقل جديد بسعة 256 بايت بدون فهارس في المجموعة: 1,000 وحدة قراءة و1, 000 وحدة كتابة

عمليات الحذف

  • حذف مستند بحجم 1 كيلوبايت يحتوي على فهرس واحد في المجموعة تستهلك: وحدتَي كتابة
  • احذف مستندًا بحجم 1 كيلوبايت ليس له فهارس في المجموعة. تستهلك: وحدة كتابة واحدة

إنشاء الفهارس

تفرض عمليات إنشاء الفهرس رسومًا على إدخالات الفهرس التي تم إنشاؤها أو تعديلها أثناء عملية الإنشاء. يتم تكبّد هذه التكاليف في أي وقت تتم فيه إضافة تعريف فهرس أو إزالته. يتم تحصيل الرسوم من إدخالات الفهرس بشكل مماثل لعمليات الكتابة التي تتكبّد وحدة كتابة واحدة لكل 1 كيلوبايت.

  • إنشاء فهرس جديد لمجموعة تحتوي على 500 مستند، ويبلغ حجم كل إدخال من إدخالات الفهرس التي تم إنشاؤها 1 كيلوبايت يستهلك 500 وحدة كتابة.
  • حذف فهرس حالي لمجموعة تحتوي على 500 مستند، مع العلم أنّ حجم كل إدخال في الفهرس يبلغ 1 كيلوبايت يستهلك 500 وحدة كتابة.