الحد الأقصى لأداء قاعدة البيانات المفهرسة عند استخدام مجموعات التخزين

أجرى فريق Chrome عددًا من التحسينات المتعلّقة بالأداء على تنفيذ IndexedDB (IDB). أحد التحسينات التي تم إجراؤها هو نقل مساحة التخزين الاحتياطية لكل نسخة إلى تسلسل منفصل (يمكنك اعتبار ذلك بشكل تقريبي على أنّه سلسلة محادثات منفصلة). ويعني ذلك أنّ الاستخدام المتزامن لقاعدة بيانات IndexedDB أصبح أسرع، سواء من الموقع الإلكتروني نفسه أو من مواقع إلكترونية متعددة. تقدّم هذه المشاركة جميع التفاصيل وتوضّح الإجراءات التي عليك اتّخاذها للاستفادة من هذا التغيير، والذي يتوفّر بدءًا من الإصدار 126 من Chrome.

على مواقع إلكترونية متعدّدة

إذا كان استخدامك لمعرّف IDB يتم على مستوى مواقع إلكترونية متعددة، ليس عليك اتّخاذ أي إجراء. بعد نقل البيانات على مستوى المتصفّح، ونقل مساحة التخزين الاحتياطية لكل مثيل من IDB إلى تسلسل منفصل، سيتحسّن الأداء بدون الحاجة إلى اتّخاذ أي إجراء.

Same-site

للحصول على هذا التحسين في الأداء عند الاستخدام على الموقع الإلكتروني نفسه، عليك فصل استخدام قاعدة البيانات IDB إلى مثيلات مختلفة، أي حِزم تخزين. يوضّح نموذج الرمز التالي كيفية عمل ذلك:

const request = indexedDB.open('main', 1);
request.onsuccess = (event) => {
  /* Do stuff with the main instance. */
};

// By default, just use the regular IDB instance.
let idb = indexedDB;
// Open a separate storage bucket if the API is supported.
if ('storageBuckets' in navigator) {
  const bucket = await navigator.storageBuckets.open('logs-bucket');
  // Get access to the storage bucket's IDB instance.
  idb = bucket.indexedDB;
}
const bucketRequest = idb.open('logs', 1);
bucketRequest.onsuccess = (event) => {
  /* Do stuff with the separate instance. */
};

دعم المتصفح

إنّ تحسين الأداء المذكور في هذه المشاركة هو تحسين تدريجي يمكنك الاستفادة منه عندما تكون Storage Buckets API متاحة في متصفّحك (بدءًا من الإصدار 122 من Chrome) وعندما يتم تقسيم مثيلات IDB، بدءًا من الإصدار 126 من Chrome.

أدوات مطوري البرامج

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

"أدوات مطوّري البرامج في Chrome" تفحص قسم IndexedDB. هناك قاعدتا بيانات للسجلات، وهما اسم حزمة التخزين

الإقرارات

راجع هذه المشاركة إيفان ستاد و راشيل أندرو.