🚀 CREATE INDEX: سرعة فائقة لاستعلامات قاعدة البيانات

هل لاحظت بطء في استعلامات قاعدة البيانات الخاصة بك؟ الفهارس (Indexes) هي الحل الأمثل! في هذا الدرس، سنتعلم كيفية استخدام أمر CREATE INDEX لتحسين أداء استعلامات SQL بشكل ملحوظ.


📊 ما هو الفهرس في SQL؟

الفهرس يشبه فهرس الكتاب - بدلاً من البحث في كل الصفحات، تذهب مباشرة إلى المكان الصحيح. في قواعد البيانات، الفهرس هو بنية بيانات خاصة تُسرع عملية استرجاع البيانات من الجداول.

فوائد استخدام الفهارس:

  • تسريع عمليات البحث والاستعلامات
  • تحسين أداء قاعدة البيانات
  • تقليل وقت معالجة الاستعلامات الكبيرة

🛠️ بناء أمر CREATE INDEX الأساسي

أبسط صيغة لإنشاء فهرس هي:

CREATE INDEX index_name
ON table_name (column_name);

مثال عملي بسيط:

-- إنشاء فهرس على عمود "email" في جدول "users"
CREATE INDEX idx_users_email
ON users (email);

في هذا المثال، أنشأنا فهرساً يُسمى idx_users_email على عمود البريد الإلكتروني في جدول المستخدمين.


📝 أنواع الفهارس في SQL

هناك عدة أنواع من الفهارس، أهمها:

1. الفهرس المفرد (Single Column Index)

CREATE INDEX idx_products_name
ON products (product_name);

2. الفهرس المركب (Composite Index)

CREATE INDEX idx_orders_customer_date
ON orders (customer_id, order_date);

3. الفهرس الفريد (Unique Index)

CREATE UNIQUE INDEX idx_users_username
ON users (username);

⚡ متى نستخدم الفهارس؟

استخدم الفهارس عندما:

  • الجدول يحتوي على كمية كبيرة من البيانات
  • عمود البحث يُستخدم بكثرة في جمل WHERE
  • تحتاج إلى تسريع عمليات JOIN

تجنب الفهارس عندما:

  • الجدول صغير الحجم
  • عمليات الإدخال والتحديث كثيرة (لأن الفهارس تبطئها)

🎯 مثال تطبيقي شامل

لنفترض أن لدينا جدول "employees" ونريد تحسين أداء الاستعلامات:

-- إنشاء فهرس على الراتب
CREATE INDEX idx_employees_salary
ON employees (salary);

-- إنشاء فهرس مركب على القسم والمدينة
CREATE INDEX idx_employees_dept_city
ON employees (department, city);

-- الآن ستكون هذه الاستعلامات أسرع بكثير
SELECT * FROM employees WHERE salary > 50000;
SELECT * FROM employees WHERE department = 'IT' AND city = 'Riyadh';

⚠️ ملاحظات هامة

  • الفهارس تأخذ مساحة تخزين إضافية
  • تحديثات الجداول تصبح أبطأ مع زيادة الفهارس
  • اختر الأعمدة المناسبة للفهرسة بعناية
  • استخدم أسماء واضحة للفهارس (مثل idx_اسم الجدول_اسم العمود)

💡 نصائح عملية

  1. ركز على الأعمدة الأكثر استخداماً في جمل WHERE وJOIN
  2. تجنب الإفراط في الفهرسة - الكثير من الفهارس قد يضر أكثر مما ينفع
  3. راقب أداء الاستعلامات قبل وبعد إنشاء الفهارس
  4. استخدم الفهارس المركبة بحكمة للأعمدة التي تُبحث معاً