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

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

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

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

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

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

يوضّح الجدول التالي الرسوم المرتبطة بتنفيذ طلبات البحث في النص الكامل لكتالوج منتجات التجارة الإلكترونية لمشتل نباتات. يفترض هذا المثال وجود مجموعة من 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" عبارة ("dry water") وعبارات إضافية. تكون عمليات البحث عن العبارات أكثر تعقيدًا لأنّ محرّك طلبات البحث يحتاج إلى التحقّق من مدى تقارب الرموز المميزة وترتيبها، ما يساهم في زيادة وحدات القراءة السبع لمرحلة البحث. بما أنّ عددًا قليلاً جدًا من المستندات يتطابق مع طلب البحث، تكون تكلفة استرداد المستندات منخفضة.
  • يؤدي طلب البحث "indoor" "citrus" "tree" إلى البحث عن ثلاث عبارات منفصلة. ومع أنّ هذا البحث أقل تعقيدًا من البحث عن عبارة، إلا أنّه يتطلب البحث عن رموز مميزة متعددة. تبلغ تكلفة فحص فهرس البحث في هذا المثال 6 وحدات قراءة، وهي أقل قليلاً من مثال "dry water"، ولكن يتم عرض 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 وحدات قراءة.

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

In certain situations it may not be necessary to read the contents of a document or index entry to satisfy a query. ويشمل ذلك طلبات البحث البسيطة عن العدد، مثل حساب إجمالي عدد المستندات في مجموعة. في هذه الحالات، يتم تطبيق حدّ أدنى للتكلفة يبلغ 32 بايت لكل عنصر يتم فحصه.

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

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

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

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

Query Explain

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

تنطبق التكاليف التالية عند استخدام ميزة "تفسير طلب البحث":

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

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

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

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

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

إنشاء

  • أنشئ مستندًا جديدًا بحجم 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 وحدة كتابة.