الانتقال إلى المحتوى الرئيسي

المشكلة

تعمل عملية البحث مثل a['key'] بتعقيد خطي (كما هو مذكور هنا)، وقد تكون غير فعّالة. ويعود ذلك إلى أن اختيار قيمة بمفتاح محدد من جدول يتطلب المرور على جميع المفاتيح (~M) عبر كل الصفوف (N) في عمود Map، ما ينتج عنه نحو ~MxN من عمليات البحث. قد تكون عملية البحث باستخدام Map أبطأ بمقدار 10x مقارنةً بعمود String. وتُظهر التجربة أدناه أيضًا تباطؤًا بنحو ~10x في الاستعلام البارد، إلى جانب فارق بعدة مراتب في حجم البيانات المُعالجة (7.21 MB مقابل 5.65 GB).
الحل لتحسين الاستعلام، يمكننا إضافة عمود آخر تُضبط قيمته افتراضيًا على مفتاح معيّن في عمود Map، ثم تحويله إلى عمود مادي لتعبئة القيمة للصفوف الموجودة. بهذه الطريقة، نستخرج القيمة المطلوبة ونخزّنها وقت الإدراج، مما يسرّع عملية البحث وقت تنفيذ الاستعلام.
آخر تعديل في ٢ يوليو ٢٠٢٦