شرح صفوف ومحتوى الفقرة
يُسمى أي فهرس إضافي تنشئه على أعمدة البحث (مثل البريد الإلكتروني أو رقم الهاتف أو المدينة) فهرساً ثانوياً (Secondary Index). ولكن ماذا يخزن محرك InnoDB داخل العقد الورقية للفهرس الثانوي؟
بدلاً من تخزين عنوان فيزيائي خام على القرص قد يتغير عند تحرك الصفحات، يخزن الفهرس الثانوي في أوراقه شيئين فقط: قيمة العمود المفهرس + قيمة المفتاح الأساسي PRIMARY KEY لذلك الصف. وعندما تطلب أعمدة غير موجودة في الفهرس الثانوي، ينفذ المحرك خطوتين:
- الخطوة 1: يبحث في شجرة الفهرس الثانوي لاستخراج قيمة المفتاح الأساسي
PRIMARY KEYالمطابقة. - الخطوة 2 (البحث المرجعي Bookmark Lookup): يستخدم قيمة المفتاح الأساسي للبحث في شجرة الفهرس العنقودي واسترجاع بقية أعمدة الصف.
SQL
CREATE INDEX idx_shipments_city ON shipments (destination_city);