در وردپرس، تنظیمات (options) با یک پرچم به نام autoload ذخیره می‌شوند . اگر این پرچم روی yes باشد، آن تنظیم در تمام صفحات سایت، در اولین درخواست، به حافظه بارگذاری می‌شود . این کار برای داده‌های پرکاربرد (مانند نام سایت) مفید است، اما مشکل از جایی شروع می‌شود که 

  • پلاگین‌ها یا قالب‌ها داده‌های غیرضروری را با autoload=yes ذخیره می‌کنند .
  • پلاگین‌های حذف شده، داده‌های پسماند خود را پاک نمی‌کنند .
  • با گذشت زمان، تعداد و حجم این داده‌ها انباشته شده و از حد معقول (مثلاً ۱ مگابایت) عبور می‌کند .

وردپرس مجبور می‌شود حجم عظیمی از داده را در هر بار بارگذاری صفحه، از دیتابیس بخواند و به حافظه منتقل کند. این کار باعث افزایش زمان پاسخ‌دهی اولیه (TTFB) و کندی محسوس سایت می‌شود .

راهکارهای پیشگیری و رفع:

پایش و شناسایی: با کوئری‌های زیر در دیتابیس، وضعیت را بررسی کنید :

مشاهده حجم کل داده‌های اتولود:

SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes';

پیدا کردن بزرگ‌ترین گزینه‌های اتولود:

SELECT option_name, ROUND(LENGTH(option_value) / 1024 / 1024, 4) AS size_mb
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size_mb DESC
LIMIT 10;

پاکسازی: با شناسایی گزینه‌های بزرگ و غیرضروری، پرچم autoload آنها را به no تغییر دهید یا در صورت اطمینان، ردیف را حذف کنید .

استفاده از Object Cache: فعال کردن یک کش اشیاء مانند Redis یا Memcached مهم‌ترین راهکار است. این سیستم، نتیجه کوئری‌های سنگین را در حافظه ذخیره می‌کند و دفعات مراجعه به دیتابیس را به شدت کاهش می‌دهد

آیا این پاسخ به شما کمک کرد؟ 0 کاربر این را مفید یافتند (0 نظرات)