سؤال

أعالج بعض ملفات الإدخال وإدخال السجلات التي تم الحصول عليها باسم وثائق couchdb. لقد لاحظت أن سرعة الإدراج تتناقص في وتيرة زيادة حجم قاعدة البيانات.

ما أقوم به هو:

  1. قراءة البيانات من ملف الإدخال
  2. معالجة البيانات للحصول على المستندات المهيكلة
  3. ضع المستندات في المخزن المؤقت المحلي
  4. بمجرد أن يكون المخزن المؤقت 1000 وثيقة، قم بإدخال إدراج COUOUGDB بالجملة
  5. كرر حتى تتم معالجة بيانات الإدخال بالكامل
  6. هنا لديك سجل التشغيل الحالي الخاص بي:

    giveacodicetagpre.

    يعرض "المعدل" معدل إدراج الوثائق الاخرة، التي يمكنك أن ترى هي المهينة بسرعة كبيرة.

    • هل هذا طبيعي؟
    • يمكنني أن أفعل شيئا للحفاظ على معدل إدراج عالية؟
    • هل لديك خبرة مع قواعد بيانات COUCHDB الكبيرة.
    • أي نصائح ترغب في مشاركتها؟
هل كانت مفيدة؟

المحلول

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

من مؤشرات الترابط الأخرى، لقد طرحت هذا السؤال، وهو عامل مهم آخر هو أنك استخدمت UUID عشوائي بالكامل.نظرا لأن CouchDB يعتمد على شجرة B +، فإن إدخال معرفات عشوائية بالكامل هو أسوأ سيناريوهات ممكنة للتحديث.السفن CouchDB مع عدد من خوارزميات Uuid، الافتراضي، يسمى "إرجاع" إرجاع "تسلسلي" مع فرصة منخفضة جدا للتصادمات التي لا تزال متتابعة بما يكفي لإعطاء أداء أفضل بكثير من إدراج أفضل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top