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

InnoDB Clustered Primary Key Index المفتاح الأساسي والفهرس العنقودي

تعلّم فهارس شجرة B Tree والمفتاح العنقودي والفحص الكامل في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يمتاز محرك InnoDB بهندسة فريدة تسمى الجدول المنظّم بالفهرس (Index-Organized Table)؛ فالمفتاح الأساسي PRIMARY KEY ليس مجرد فهرس منفصل يشير إلى الجدول، بل هو الفهرس العنقودي (Clustered Index) الذي يمثّل الجدول الفيزيائي نفسه! بمعنى أن العقد الورقية (Leaf Pages) لشجرة المفتاح الأساسي تحتوي بداخلها على كامل أعمدة الصفوف مرتبةً فيزيائياً على القرص حسب قيمة المفتاح الأساسي.

كيف يختار InnoDB الفهرس العنقودي لكل جدول؟

  • الحالة 1 (وجود PRIMARY KEY): يعتمد InnoDB المفتاح الأساسي الصريح كفهرس عنقودي للجدول.
  • الحالة 2 (غياب المفتاح الأساسي مع وجود مفتاح UNIQUE NOT NULL): يرقّي المحرك أول فهرس فريد لا يقبل القيم الفارغة ليعمل كفهرس عنقودي.
  • الحالة 3 (غياب الاثنين معاً): ينشئ InnoDB داخلياً عموداً مخفياً بحجم 6 Bytes باسم DB_ROW_ID ليبني عليه الفهرس العنقودي، ولذلك يُنصح دائماً بتعريف مفتاح أساسي رقمي متزايد AUTO_INCREMENT لكل جدول.
SQL
SELECT * FROM shipments WHERE shipment_id = 5001;