
به اشتراک بگذارید

به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
پاکسازی و بهینهسازی دیتابیس وردپرس برای افزایش سرعت
wp_posts و wp_options پر از ریویژن، ترنزینت منقضی و متادیتای یتیم میشوند و همینها زمان پاسخ سرور و سرعت بارگذاری را بالا میبرند. در این مقاله دو رویکرد پاکسازی را کنار هم میگذاریم و کد و مراحل دقیق هرکدام را میبینید تا خودتان بیخطر اجرا کنید.WP_POST_REVISIONS جلوی انباشت دوبارهی ریویژن را بگیرید.wp_posts میسازد؛ یک نوشته میتواند دهها ریویژن داشته باشد.wp_options باقی ماندهاند.wp_postmeta که پست والدشان حذف شده و بیصاحب ماندهاند.
| معیار | افزونه (مثل WP-Optimize) | روش دستی (SQL / WP-CLI) |
|---|---|---|
| سطح مهارت لازم | مبتدی | متوسط تا پیشرفته |
| نیاز به دسترسی SSH | ندارد | برای WP-CLI بله (SQL از phpMyAdmin هم میشود) |
| سرعت اجرا روی سایت بزرگ | متوسط | بسیار سریع |
| ریسک خطای انسانی | کم | متوسط تا زیاد (کوئری اشتباه) |
| زمانبندی خودکار پاکسازی | دارد | با کرونجاب باید خودتان بسازید |
| کنترل دقیق روی دادهها | متوسط | کامل |
| بار اضافه روی سایت | یک افزونهی نصبشده | بدون افزونهی دائمی |
WP-Optimize را جستوجو، نصب و فعال کنید.
wp_ فرض شده؛ اگر سایت شما پیشوند دیگری دارد آن را جایگزین کنید:wp transient delete --expired طبق مستندات رسمی WP-CLI فقط ترنزینتهای منقضی را حذف میکند و به دادهی سالم دست نمیزند. دستور wp db optimize هم معادل اجرای OPTIMIZE روی همهی جدولهای دیتابیس است.WP_POST_REVISIONS به فایل wp-config.php تعداد ریویژن هر نوشته را محدود کنید. طبق مستندات وردپرس، ریویژنهای قدیمیِ مازاد هنگام آپدیت بعدیِ همان نوشته خودکار حذف میشوند:بستگی به میزان فعالیت سایت دارد. برای یک سایت معمولی، ماهی یک بار کافی است. اگر سایت پرمحتوا یا فروشگاهی دارید که مدام بهروزرسانی میشود، پاکسازی هفتگی خودکار با افزونه گزینهی خوبی است. مهمتر از تکرار زیاد، محدودکردن ریویژنها برای جلوگیری از انباشت دوباره است.
روی سایتهای شلوغ و قدیمی، بله؛ جدول کوچکتر و کاهش دادهی autoload باعث کوئری سریعتر و کاهش زمان پاسخ سرور میشود. اما اگر دیتابیس شما تازه و کوچک است، تفاوت ممکن است ناچیز باشد. پاکسازی دیتابیس یکی از عوامل سرعت است، نه تنها عامل آن.
اگر با افزونه و فقط روی موارد امن (ریویژن، ترنزینت منقضی، اسپم) کار کنید، ریسک بسیار کم است. در روش دستی با SQL، یک کوئری اشتباه میتواند دردسرساز شود. در هر دو حالت، تنها بیمهی واقعی شما بکاپ کامل دیتابیس پیش از هر اقدام است.
محدودکردن معمولاً بهتر است. با WP_POST_REVISIONS میتوانید مثلاً فقط ۵ ریویژن آخر را نگه دارید؛ اینطور هم جدول سبک میماند و هم امکان بازگشت به نسخههای اخیر را از دست نمیدهید. حذف کامل فقط وقتی منطقی است که هرگز به تاریخچهی نوشتهها نیاز ندارید.
پاکسازی یعنی حذف ردیفهای زائد (ریویژن، اسپم و…). اما بعد از حذف، فضای خالی داخل جدول باقی میماند. OPTIMIZE TABLE این فضای خالی را آزاد و داده را یکپارچه میکند. برای بهترین نتیجه، اول پاکسازی و بعد OPTIMIZE را انجام دهید.
بله. WP-CLI به SSH نیاز دارد، اما کوئریهای SQL را میتوانید از phpMyAdmin در کنترلپنل هاست (مثل سیپنل) اجرا کنید. کافی است وارد phpMyAdmin شوید، دیتابیس سایت را انتخاب و کوئریها را در تب SQL اجرا کنید. باز هم اول بکاپ بگیرید.
autoload به آپشنهایی گفته میشود که در هر بار بارگذاری صفحه در حافظه لود میشوند. اگر حجمشان زیاد شود سایت را کند میکنند. افزونههای حذفشده اغلب آپشن autoload بهجا میگذارند. میتوانید با کوئری روی wp_options آپشنهای بزرگِ بیمصرف را پیدا و پاک کنید؛ از وردپرس 6.6 «سلامت سایت» هم دربارهی حجم زیاد autoload هشدار میدهد.
احتمالاً ریشهی کندی جای دیگری است: قالب سنگین، افزونهی بد، نبود کش یا هاست ضعیف. پاکسازی دیتابیس فقط یک لایه از سرعت است. سراغ فعالکردن کش، بهینهسازی تصاویر و در صورت نیاز ارتقای هاست بروید تا نتیجهی محسوس بگیرید.
اگر از زمانبندی خودکار استفاده میکنید، باید فعال بماند تا کارش را انجام دهد. اگر فقط یک بار پاکسازی کردهاید و نگران تعداد افزونهها هستید، میتوانید آن را غیرفعال یا حذف کنید و دفعهی بعد دوباره نصبش کنید. افزونهی غیرفعال معمولاً روی سرعت اثری ندارد.