شرح صفوف ومحتوى الفقرة
في قواعد البيانات الكبيرة، قد تشك أن فهرساً قديماً لم يعد مستخدماً وتريد حذفه لتوفير الذاكرة وتسريع الكتابة؛ لكنك تخشى أن يكون هناك تقرير شهري يعتمد عليه، ولو حذفته بـ 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;