ما هو ملف MYI؟
يُعرف MYI أيضًا باسم ملف فهرس MySQL MyISAM. يتم استخدامه لتخزين الفهارس لجدول MyISAM بواسطة MySQL. يحدد فهرس قاعدة بيانات MySQL بنية الجدول ويحتوي على آلية التحكم للتحقق من سلامة الجداول.
تنسيق ملف MYI
يحتوي ملف MYI على جزأين ، الرأس والقيم الأساسية.
رأس MYI
يحتوي الرأس على معلومات حول الخيارات وأحجام الملفات والمفاتيح. يتم إنشاء المفاتيح في MySQL بأمر مثل
CREATE [UNIQUE] INDEX.
الملفات التي تقرأ وتكتب ملفات MYI موجودة في دليل ./myisam. يحتوي على الملفات التالية:
- mi_open.c: يحتوي هذا الملف على الإجراءات التي تكتب كل قسم من رأس الصفحة.
- mi_create.c: يحتوي هذا الملف على الإجراءات التي تستدعي إجراءات mi_open.c.
- myisamdef.h: يحتوي هذا الملف على تعريفات هيكلية.
يحتوي العنوان على الأقسام التالية:
- الحالة: تتم كتابة الحالة بواسطة mi_open.c، mi_state_info_write (). تحدث هذه البنية مرة واحدة في الملف.
- القاعدة: القاعدة مكتوبة بواسطة mi_open.c، mi_base_info_write (). MI_BASE_INFO هو البنية المقابلة للقاعدة في myisamdef.h. تحدث هذه البنية مرة واحدة في الملف.
- keydef: تمت كتابة keydef بواسطة mi_open.c، mi_keydef_write (). MI_KEYDEF هي البنية المقابلة لملف المفتاح في myisamdef.h. إنها بنية متعددة التكرارات تظهر لكل فهرس.
- recinfo: تمت كتابة recinfo بواسطة mi_open.c، mi_recinfo_write (). MI_COLUMNDEF هي البنية المقابلة لـ recinfo في myisamdef.h. وهي عبارة عن هيكل متعدد التكرارات يظهر مرة واحدة لكل حقل يظهر في المفتاح.
القيم الأساسية
تسمى الصفحات في MySQL كتل. القيم الأساسية في الكتل. تحتوي الكتلة على معلومات من فهرس واحد فقط. يحتوي كل مفتاح على المحتويات الكاملة لجميع الأعمدة. طول الكتلة العادي هو 0x0400 (1024) بايت. يحتوي المؤشر على رقم بحجم ثابت (4 بايت) لجداول الصفوف الثابتة التي تحتوي على رقم صف ترتيبي. إذا كان المفتاح فارغًا ، فسيكون البايت هو 0x00. الكتلة العادية ممتلئة بنسبة 65٪ على الأقل وعادة ما تكون ممتلئة بنسبة 80٪.
يحتوي الملف myisamdef.h على المعلومات التالية المعبر عنها بالثوابت. الحد الأقصى لعدد المفاتيح هو 32 (MI_MAX_KEY) والحد الأقصى لعدد المقاطع في المفتاح هو 16 (MI_MAX_KEY_SEG). أقصى طول للمفتاح هو 500 (MI_MAX_KEY_LENGTH). الحد الأقصى لطول الكتلة هو 16384 (MI_MAX_KEY_BLOCK_LENGTH).