شرح صفوف ومحتوى الفقرة
عندما تنشئ فهرساً من النوع الافتراضي USING BTREE في MySQL، يبني محرك InnoDB فعلياً بنية بيانات تُعرف هندسياً باسم شجرة البحث المتوازنة (B+Tree). تحافظ هذه الشجرة على توازنها تلقائياً بحيث تكون المسافة من العقدة الجذرية (Root Node) إلى أي عقدة ورقية (Leaf Page) متساوية دائماً.
تتكوّن شجرة B+Tree في InnoDB من ثلاث طبقات مترابطة:
- العقدة الجذرية والعقد الفرعية (Root & Branch Nodes): تحتوي على قيم مفاتيح مرتبة ومؤشرات توجّه المحرك نحو الصفحة الفرعية الصحيحة (أكبر من أو أصغر من).
- العقد الورقية (Leaf Pages): تقع في المستوى الأدنى وتحتوي على القيم المفهرسة مرتبةً ترتيباً تصاعدياً دقيقاً.
- روابط ثنائية الاتجاه (Doubly-Linked List): ترتبط كل صفحة ورقية بالصفحة التي تسبقها والتي تليها، مما يجعل البحث في النطاقات مثل
BETWEEN 100 AND 500أو الترتيبORDER BYسريعاً للغاية دون الحاجة للعودة إلى الجذر.
SQL
SELECT * FROM customers WHERE customer_id BETWEEN 101 AND 104;