كيف يؤثر ترتيب الأعمدة في الفهرس المركب في MySQL؟

متوسطقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

الفهرس المركب يجمع أكثر من عمود داخل بنية واحدة، ويكون لترتيب الأعمدة فيه معنى مهم. فالفهرس على (customer_id, status, created_at) يبدأ بتنظيم القيم حسب العميل، ثم الحالة داخل العميل، ثم التاريخ داخل المجموعة الناتجة. لذلك لا يعادل هذا الفهرس ثلاثة فهارس منفصلة على الأعمدة نفسها.

تصف قاعدة البادئة اليسرى الأعمدة المتتابعة التي تبدأ من أول الفهرس. في المثال، تعد customer_id بادئة يسرى، وكذلك الزوج (customer_id, status). أما status وحده فلا يشكل بادئة يسرى، لأن العمود الأول غائب. ترتيب كتابة الشروط في نص الاستعلام لا يغير ترتيب الأعمدة داخل تعريف الفهرس.

مثال

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT,
  status VARCHAR(20),
  created_at DATETIME,
  INDEX idx_customer_status_date
    (customer_id, status, created_at)
);

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

باختصار: تبدأ البادئة اليسرى من أول عمود في الفهرس وتستمر دون تجاوز عمود وسيط.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

أي مجموعة أعمدة تمثل بادئة يسرى من عمودين للفهرس المعرف في الكود؟

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT,
  status VARCHAR(20),
  created_at DATETIME,
  INDEX idx_customer_status_date
    (customer_id, status, created_at)
);