الدرس 37: مقدمة إلى الفهرسة (تسريع الاستعلامات)
تُعد الفهارس (Indexes) حاسمة لأداء قاعدة البيانات. إنها تعمل تمامًا مثل الفهرس الموجود في نهاية الكتاب، مما يسمح لنظام DBMS بتحديد موقع البيانات بسرعة دون مسح كل صف.
ما هو الفهرس (Index)؟
الفهرس هو هيكل بيانات منفصل يخزن قيم عمود واحد أو أكثر بترتيب مصنف، جنبًا إلى جنب مع مؤشرات (Pointers) لموقع سجلات البيانات الفعلية.
الفهارس العنقودية مقابل غير العنقودية (Clustered vs. Non-Clustered)
- الفهرس العنقودي (Clustered Index): يحدد الترتيب المادي الذي يتم به تخزين البيانات على القرص. يمكن أن يحتوي الجدول على فهرس عنقودي واحد فقط (غالبًا ما يكون المفتاح الأساسي).
- الفهرس غير العنقودي (Non-Clustered Index): ينشئ قائمة منفصلة ومصنفة تشير إلى الموقع المادي للبيانات. يمكن أن يحتوي الجدول على العديد من الفهارس غير العنقودية.
متى يتم إنشاء فهرس
يجب إنشاء الفهارس على الأعمدة التي:
- تُستخدم بشكل متكرر في عبارة
WHERE(التصفية). - تُستخدم في شروط
JOIN(ربط الجداول). - تُستخدم في عبارات
ORDER BY(الفرز).
بناء جملة DDL
sql -- إنشاء فهرس غير عنقودي على عمود 'LastName' CREATE INDEX IX_Employee_LastName ON Employees (LastName);
المفاضلة (Trade-off)
في حين أن الفهارس تجعل قراءة البيانات (SELECT) أسرع، فإنها تبطئ كتابة البيانات (INSERT، UPDATE، DELETE). هذا لأن الفهرس يجب أن يتم تحديثه في كل مرة تتغير فيها البيانات. يجب استخدام الفهرسة بحكمة.