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

به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
بهینهسازی دیتابیس وردپرس با حذف رونوشتها و ریویژنها
wp_posts با نوع revision ذخیره میشوند و بهصورت پیشفرض هیچ محدودیتی روی تعدادشان نیست.wp_options باقی میمانند.
| روش | مناسب چه کسی | ریسک | امکان زمانبندی | نیاز به بکاپ |
|---|---|---|---|---|
| افزونه (مثل WP-Optimize) | همه، بهویژه تازهکارها | کم | بله، خودکار | توصیهشده |
| کوئری SQL در phpMyAdmin | کاربر متوسط تا حرفهای | متوسط تا بالا | خیر (دستی) | الزامی |
| دستور WP-CLI | توسعهدهنده / مدیر سرور | متوسط | با کرانجاب | الزامی |

wp-config.php میتوانید تعداد رونوشتهای هر نوشته را محدود کنید. این فایل را از طریق مدیر فایل هاست یا FTP باز کنید و کدهای زیر را پیش از خط «That’s all, stop editing!» قرار دهید:wp_ است، اما بهدلایل امنیتی ممکن است چیز دیگری (مثل wpxy_) باشد. حتماً پیشوند واقعی سایت خود را در کوئری جایگزین کنید؛ اجرای کوئری با پیشوند اشتباه یا روی دیتابیس اشتباه میتواند دردسرساز شود.OPTIMIZE TABLE در انتهای کوئری، فضای خالیشده پس از حذف ردیفها را بازپس میگیرد و جدول را مرتب میکند. اگر ترجیح میدهید همهچیز را از خط فرمان مدیریت کنید و به سرور دسترسی SSH دارید، ابزار رسمی WP-CLI هم همین کار را سادهتر انجام میدهد:OPTIMIZE TABLE روی جدولهای بزرگ ممکن است چند لحظه جدول را قفل کند، پس بهتر است در ساعت کمترافیک اجرا شود. و در نهایت، حذف ترنزینتها بیخطر است اما بلافاصله پس از آن، تا زمانی که کشها دوباره ساخته شوند، کمی فشار روی دیتابیس بیشتر میشود.خیر. رونوشتها فقط نسخههای تاریخیِ ذخیرهشده از یک نوشته هستند و ربطی به نسخهی منتشرشدهی فعلی ندارند. با حذف آنها محتوای زندهی سایت دستنخورده میماند؛ تنها چیزی که از دست میرود امکان بازگشت به نسخههای قبلیِ همان نوشته است. با این حال، پیش از هر پاکسازی گرفتن بکاپ همیشه توصیه میشود.
برای بیشتر سایتها یک پاکسازی هفتگی یا ماهانه کافی است. اگر سایت پرمحتوا و فعالی دارید که روزانه چند نوشته منتشر یا ویرایش میشود، زمانبندی هفتگی مناسبتر است. برای سایتهای کمفعالیت، ماهی یکبار هم کفایت میکند. مهم این است که این کار مرتب و خودکار انجام شود.
رونوشت نسخهای است که هنگام ذخیرهی دستیِ نوشته ساخته میشود و میتواند تعداد زیادی از آن جمع شود. ذخیرهی خودکار نسخهای موقتی است که وردپرس تقریباً هر ۶۰ ثانیه حین ویرایش میسازد و روی خودش بازنویسی میشود، پس معمولاً فقط یکی از آن برای هر نوشته میماند. هر دو در پاکسازی دیتابیس هدف قرار میگیرند.
محدودکردن معمولاً انتخاب متعادلتری است. با گذاشتن مقداری مثل ۵ در WP_POST_REVISIONS، هم جلوی انباشت بیرویه را میگیرید و هم چند نسخهی اخیر را برای بازگشت احتمالی نگه میدارید. حذف کامل (مقدار false) فقط برای سایتهایی منطقی است که اصلاً به تاریخچهی ویرایش نیاز ندارند.
حذف ردیفها لزوماً بلافاصله فضا را آزاد نمیکند؛ باید بعد از حذف، دستور OPTIMIZE TABLE را اجرا کنید تا فضای خالی بازپس گرفته شود و جدول مرتب گردد. در موتور InnoDB این کار جدول را بازسازی میکند. اگر باز هم تغییری ندیدید، مطمئن شوید کوئری روی دیتابیس و پیشوند درست اجرا شده است.
پاککردن ترنزینتهای منقضی بیخطر است. ترنزینتها کشهای موقتی هستند که وردپرس و افزونهها در صورت نیاز دوباره میسازند. تنها اثر جانبی این است که بلافاصله پس از حذف، تا زمانی که کشها دوباره ساخته شوند، چند کوئری اضافه به دیتابیس زده میشود که کاملاً عادی است و سایت را نمیشکند.
بله، تا حدی. میتوانید با محدودکردن رونوشتها در wp-config.php و خالیکردن مرتب زبالهدان نوشتهها و نظرها، از انباشت جلوگیری کنید. اما برای پاکسازی دادههای قدیمیِ موجود و بهینهسازی واقعی جدولها، در نهایت به یکی از دو روش افزونه یا کوئری نیاز خواهید داشت.
بستگی به وضعیت سایت دارد. برای سایتی قدیمی با هزاران رونوشت و جدولهای شلوغ، پاکسازی میتواند زمان پاسخ دیتابیس و بارگذاری صفحه را محسوس بهتر کند. اما برای سایت کوچک و تازه، تأثیر آن کم است. بهینهسازی دیتابیس یکی از چند عامل سرعت است و در کنار کش، فشردهسازی و میزبانی خوب معنا پیدا میکند.
روی هاستهای اشتراکی معمولاً به phpMyAdmin از داخل کنترلپنل (مثل سیپنل) دسترسی دارید و میتوانید کوئری اجرا کنید یا از افزونه استفاده کنید. اگر به فایل wp-config.php هم دسترسی ندارید یا مطمئن نیستید، سادهترین و امنترین راه استفاده از افزونه است؛ در صورت تردید هم میتوانید از پشتیبانی هاست کمک بگیرید.