تضخم البيانات المحمّلة تلقائيًا (autoloaded data) داخل جدول wp_options يُعتبر من أخطر أسباب بطء المواقع، لأنه يتم تحميل هذه البيانات في كل طلب للموقع سواء احتاجها النظام أم لا. هذه المشكلة تؤثر على وقت الاستجابة، استهلاك الذاكرة، وعمليات الـ SQL بشكل مباشر.
لماذا يحدث تضخم autoloaded data؟
قبل البدء في الحل، من المهم فهم الأسباب التي تؤدي لهذه المشكلة:
- قيمة autoload مفعّلة بشكل عشوائي لإعدادات غير مهمة.
- إضافات تترك خلفها بيانات لا تُستخدم.
- قوالب/Plugins غير محسّنة تكتب بيانات ضخمة داخل wp_options.
- فساد أو تضخم جداول قاعدة البيانات.
- عدم وجود فهارس قوية (Indexes) لقراءة البيانات بشكل أسرع.
- ذاكرة PHP منخفضة مقارنة بحجم البيانات المُحملة تلقائيًا.
خطوات تشخيص المشكلة بشكل احترافي
- فتح phpMyAdmin والاطلاع على حجم جدول
wp_options. - فحص الخيارات المحمّلة تلقائيًا:
SELECT option_name, LENGTH(option_value) FROM wp_options WHERE autoload = 'yes' ORDER BY LENGTH(option_value) DESC; - استخدام أداة Query Monitor لفحص الاستعلامات الثقيلة.
- مراجعة ملف
wp-content/debug.logلمعرفة أي تحذيرات تخص الذاكرة أو قواعد البيانات. - تحسين الجداول باستخدام WP-CLI:
wp db optimize
أولًا: حلول بسيطة تناسب المستخدم العادي والمطور المتوسط
الحل 1: تحسين وتنظيف قاعدة البيانات عبر إضافات موثوقة
هذه الخطوة يجب تنفيذها دائمًا قبل أي تدخل يدوي.
- تثبيت إضافة WP-Optimize.
- تشغيل تنظيف:
- المراجعات القديمة
- المسودات التلقائية
- تعليقات Spam والمرفوضة
- Transients القديمة
- تنفيذ تحسين للجداول Database Optimization.
إضافات موصى بها:
الحل 2: مراقبة الإضافات التي تسبب تضخم autoload
- تثبيت إضافة Query Monitor.
- فتح الصفحات الثقيلة ومراقبة:
- Top autoload entries
- الاستعلامات البطيئة
- الإضافات التي تستخدم wp_options بشكل مستمر
- تعطيل أو استبدال الإضافات التي تظهر استعلاماتها في القمة بشكل متكرر.
Query Monitor – Official Website
الحل 3: استخدام إضافات لفحص وضبط autoloaded data
إضافات متخصصة تساعدك على معرفة أكبر القيم حجمًا داخل autoload:
- عرض الخيارات حسب الحجم.
- إمكانية تحديد قيم غير ضرورية وتحويلها إلى
autoload=no.
إضافات مقترحة:
ثانيًا: حلول متقدمة للمطورين (SQL – WP-CLI – Index Optimization)
تنبيه: يجب أخذ نسخة احتياطية من قاعدة البيانات قبل تنفيذ أي أوامر SQL.
الحل 4: تحليل أكبر خيارات autoload حجمًا باستخدام SQL
SELECT option_name, LENGTH(option_value) AS size FROM wp_options WHERE autoload = 'yes' ORDER BY size DESC LIMIT 50; هذا الاستعلام يعرض لك القيم التي تستهلك معظم الذاكرة.
الحل 5: تقليل autoload للقيم غير الضرورية
بعد تحديد القيم غير الأساسية، يمكنك تعديلها يدويًا:
UPDATE wp_options SET autoload = 'no' WHERE option_name = 'اسم_الخيار'; لا تغيّر أي قيمة تخص النظام مثل:
siteurl – home – active_plugins – template
الحل 6: تحسين الجداول والفهارس
OPTIMIZE TABLE wp_options; OPTIMIZE TABLE wp_postmeta; الحل 7: استخدام WP-CLI للتحسين المتقدم
# تحسين جميع الجداول wp db optimize # عرض أحجام الجداول wp db size --human-readable --tables الخلاصة والنصائح النهائية
- ابدأ دائمًا بالتشخيص: لا تقلل autoload بشكل عشوائي.
- استخدم الإضافات أولًا: هي الأكثر أمانًا للمواقع الحية.
- كن حذرًا: بعض الخيارات الأساسية لا يجب تغيير autoload لها.
- اختبر الأداء بعد كل خطوة: خاصة على صفحات WooCommerce أو الصفحات الثقيلة.
- اجعل الفحص دوريًا: مرة كل 2–3 أشهر.
