الفهرس بنية إضافية تساعد قاعدة البيانات على الوصول إلى الصفوف دون قراءة الجدول كله. يشبه فهرس الكتاب من حيث الغرض، لكن تنفيذه قد يكون شجرة مرتبة أو بنية تجزئة أو نوعًا متخصصًا للنصوص والمواقع الجغرافية.
إذا بحث استعلام عن مستخدم بالبريد وكان العمود مفهرسًا، تستطيع القاعدة الانتقال إلى نطاق صغير ثم الوصول إلى الصف. من دون فهرس قد تنفذ مسحًا كاملًا. الفرق يكبر مع ملايين الصفوف، لكنه قد يكون غير مهم في جدول صغير.
الفهرس ليس مجانيًا. كل إدخال أو تحديث أو حذف قد يتطلب تعديل الفهرس، ويستهلك مساحة وذاكرة. إنشاء فهارس على كل عمود يبطئ الكتابة ويزيد الصيانة. القرار يعتمد على الاستعلامات الحقيقية لا على أسماء الأعمدة وحدها.
ترتيب الأعمدة في الفهرس المركب مهم. فهرس على `(category, created_at)` يخدم غالبًا البحث عن فئة مرتبة بالتاريخ، لكنه لا يخدم بالدرجة نفسها بحثًا عن التاريخ وحده. قاعدة «البادئة اليسرى» تختلف تفاصيلها حسب المحرك، لذلك تُراجع خطة التنفيذ.
المحدد الانتقائي يضيق النتائج. فهرس على قيمة ثنائية تتكرر في نصف الجدول قد لا يفيد، لأن قراءة عدد كبير من الصفوف عبر الفهرس أغلى من المسح. وقد يختار المحسن تجاهل فهرس موجود بناء على إحصاءات توزيع البيانات.
تظهر خطة التنفيذ هل استخدم الاستعلام مسحًا أو فهرسًا، وكيف ربط الجداول، وكم صفًا توقع. مقارنة المتوقع بالفعلي تكشف إحصاءات قديمة أو توزيعًا غير معتاد. القياس في بيئة تشبه الإنتاج أفضل من الحكم من زمن تجربة صغيرة.
يمكن لفهرس مغطٍ أن يحتوي الأعمدة اللازمة للإجابة، فيقل الرجوع إلى الجدول، لكن إضافة أعمدة كثيرة تضخم حجمه. كما تمنع دالة مطبقة على العمود استخدام فهرس عادي أحيانًا، ويمكن حل ذلك بفهرس تعبيري أو إعادة صياغة الاستعلام إذا دعم المحرك.
تتفتت بعض الفهارس مع كثرة التعديلات وتحتاج صيانة وفق المحرك. كما يجب حذف المكرر غير المستخدم بعد مراقبة كافية، لا أثناء لحظة بطء واحدة. المراقبة تسجل الاستعلامات الأبطأ وتكرارها؛ استعلام متوسط يتكرر مليون مرة قد يكون أولى من استعلام بطيء نادر.
الأمان والاتساق يظلان أهم من السرعة. الفهرس الفريد يفرض عدم تكرار قيمة مثل البريد، لكنه يحتاج معالجة خطأ التزامن في التطبيق. لا يكفي فحص الوجود ثم الإدخال، لأن طلبين قد يجتازان الفحص معًا.
الفهارس النصية تختلف عن مطابقة الكلمات العادية؛ فهي تحلل اللغة وقد تتعامل مع الجذور والترتيب، بينما يحتاج البحث بجزء من كلمة إلى تصميم مناسب. والفهرس الجغرافي يفهم القرب والتقاطع بدل ترتيب الأرقام فقط. اختيار النوع الخاطئ قد يعطي نتيجة صحيحة ببطء شديد. كما تؤثر المعاملات: بناء فهرس كبير قد يقفل الكتابة في بعض الأوضاع، فتستخدم طريقة متزامنة أو نافذة صيانة وتراقب مساحة القرص. قبل التنفيذ تُختبر خطة رجوع إذا زاد الحمل، وبعده تقارن مؤشرات زمن الاستجابة والكتابة لا استعلامًا واحدًا.
## سؤال للنقاش
ما البيانات التي تجمعها قبل إضافة فهرس جديد، وكيف تتأكد بعد الإضافة أنه حسن الحمل الفعلي؟
## المراجع
- وثائق PostgreSQL الرسمية للفهرسة وخطط التنفيذ.
- وثائق MySQL الرسمية للمحسن والفهارس.
- المراجع الجامعية في نظم قواعد البيانات.
البرمجة وعلوم الحاسب
فهرس قاعدة البيانات: لماذا يسرّع البحث وقد يبطئ الكتابة؟
بقلم فريق تحرير وي تاك · 2026-10-02 09:38:31
الفهرس بنية إضافية تساعد قاعدة البيانات على الوصول إلى الصفوف دون قراءة الجدول كله. يشبه فهرس الكتاب من حيث الغرض، لكن تنفيذه قد يكون شجرة مرتبة أو بنية تجزئة أو نوعًا متخصصًا للنصوص والمواقع الجغرافية.