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

Invisible Indexes in MySQL 8 اختبار الفهرس عبر INVISIBLE

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

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

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

في قواعد البيانات الكبيرة، قد تشك أن فهرساً قديماً لم يعد مستخدماً وتريد حذفه لتوفير الذاكرة وتسريع الكتابة؛ لكنك تخشى أن يكون هناك تقرير شهري يعتمد عليه، ولو حذفته بـ DROP INDEX فستستغرق إعادة بنائه ساعات طويلة! لحل هذه المعضلة، قدم MySQL 8 ميزة الفهارس غير المرئية (Invisible Indexes).

عندما تحوّل الفهرس إلى INVISIBLE عبر الأمر ALTER TABLE ... ALTER INDEX idx_name INVISIBLE:

  • يتجاهل محسّن الاستعلامات (Query Optimizer) هذا الفهرس تماماً وكأنه غير موجود، فتستطيع مراقبة أداء التطبيق بأمان.
  • يواصل محرك InnoDB تحديث الفهرس في الخلفية عند كل INSERT أو UPDATE.
  • إذا لاحظت بطئاً في أحد الاستعلامات، يمكنك إعادته للعمل في جزء من الألف من الثانية بالأمر ALTER INDEX idx_name VISIBLE دون إعادة بناء الشجرة!
SQL
ALTER TABLE employees ALTER INDEX idx_emp_dept_status_hire INVISIBLE;