شرح صفوف ومحتوى الفقرة
يمتاز محرك 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;