مشاركة عبر


فهرسة الخلفية

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

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

Important

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

بناء مؤشر المراقبة

يمكننا معرفة تقدم بناء الفهرس باستخدام أمر currentOp().

db.currentOp("db_name":"<db_name>", "collection_name":"<collection_name>")
  • db_name هي معلمة اختيارية.
  • collection_name هو معامل اختياري.
// Output for reviewing build status
{
inprog: [
  {
    shard: 'defaultShard',
    active: true,
    type: 'op',
    opid: '10000003049:1701252500485346',
    op_prefix: Long("10000003049"),
    currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
    secs_running: Long("2"),
    command: {createIndexes: '' },
    op: 'command',
    waitingForLock: true
  },
  {
    shard: 'defaultShard',
    active: true,
    type: 'op',
    opid: '10000003050:1701252500499914',
    op_prefix: Long("10000003050"),
    currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
    secs_running: Long("2"),
    command: {
      createIndexes: 'BRInventory', },
      indexes: [
        {
          v:2,
          key: {vendorItemId: 1, vendorId: 1, itemType: 1},
          name: 'compound_idx'
        }
      ],
      '$db': 'test'
      op: 'command',
      waitingForLock: false,
      progress: {
         blocks_done: Long("12616"),
         blocks_done: Long("1276873"),
         documents_d: Long("0"),
         documents_to: Long("0")
      },
      msg: 'Building index.Progress 0.0098803875. Waiting on op_prefix: 10000000000.'
    }
  ],
  ok: 1
}

القيود

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

الخطوات التالية